码迷,mamicode.com
首页 > 其他好文 > 详细

程序包管理

时间:2015-09-15 01:48:24      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:二进制   yum   rpm   

程序包管理

Linux系统下有一系列系统管理程序包的工具。这些工具可以对程序包进行安装,升级,卸载,校验,查询等等操作;来更方便我们在Linux下对程序包的管理,常用的就属rpmyum了,下面就详细介绍下者两种工具。当然,除了这两种,还有deb也是使用广泛的一种工具。现在,就先说说rpm吧。

一、rpm

    rpmredhat公司牵头开发的一款包管理工具,全称redhat package managerrpm包是将程序源码用rpmbuild命令加工打包成的,rpmbuild可以根据自己的需要只将自己需要的功能打包成rpm包。节省用源码安装方式每次都要编译的过程,rpm包里包含可执行的二进制文件。然后,利用rpm命令就可以安装,卸载管理这个打好的rpm包了。

1rpm功用

打包,安装,卸载,升级,查询,校验

2rpm分包机制

打包: rpmbuild specs文件

    分包机制:上面说到rpmbuild可以根据自己需要只将自己需要的功能打包成rpm包,这就是rpm的分包机制。

    例如:一个APP源码包为testapp-VERSION.tar.gz,这个源码包中包含有这个APP提供的所有功能,但是我只需要他的主功能或者只需要这个app的开发模块功能就OK。那就可以指定主功能打包成核心包testapp-VERSION.rpm和开发模块功能打包成支包testapp-devel-VERSION.rpm这样两个包。这样的例子有很多。

3rpm包的命名规则

name-VERSION-RELEASE.ARCH.rpm

name:包名

VERSION:版本号,指对应的源代码版本号

    1.0.0  主版本号,次版本号,发布版本号

RELEASErpm的修订次数,发布版本。与VERSION对应的源代码版本号无关

ARCHrpm包所支持的硬件平台。有x86_64,i386

4rpm包的获取方式

a、系统光盘或镜像中提供的程序包

bFedora-EPEL

c、程序项目的官方站点

d、搜索引擎

       http://rpmfind.net

       http://rpm.pbone.net

       http://pkgs.org

5rpm命令

a、安装

  rpm {-i|--install} [install-options] PACKAGE_FILE ...

常用命令选项:rpm -ivh package

  -i or --install:安装选项

  -v:显示安装过程;-vv-vvv 更详细的安装细节

  -h:显示安装进度

  --nodeps:忽略依赖关系安装

  --replacepkgs:重装程序包


b、升级

  rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

          rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

          两个选项的区别:

  -U:如果有旧版程序包,则升级;如果没有,则安装。

  -F:如果有旧版程序包,则升级;如果没有,不安装。

  *其他一起使用的选项还有-v-h--nodeps 与安装时代表的意义相同

  --oldpackage:降级,恢复旧版本

  --force:会对其他程序产生影响时,强制升级

c、卸载

  rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts][--notriggers] [--test] PACKAGE_NAME ...

d、查询

  rpm {-q|--query} [select-options] [query-options]

  查询选择:

    -qa:查询本机已经安装的所有程序包

    -qf filename:查询文件由那个程序包安装生成

    -qc:查询指定程序包安装生成的配置文件

    -qd:查询指定程序包安装生成的文档

    -qi:查询指定程序的相关信息

    -ql:查询指定程序安装生成的所有文件列表

    -q --scripts:查询程序相关的脚本

    preinstall:安装前脚本

    postinstall:安装后脚本

    preuninstall:卸载前脚本

    postuninstall:卸载后脚本

e、校验

  rpm {-V|--verify} [select-options] [verify-options]

 导入秘钥:

    rpm --import /path/to/key_file

 校验:rpm -K /path/to/rpm_file

二、yum

    yum全称Yellow dog updateryumpython开发写成,是为了提高rpm软件包安装性而开发的一种软件包管理器。yum的宗旨是自动化的升级,安装,移除rpm包收集rpm包的相关信息,检测并帮助用户自动解决rpm包依赖性。yum的理念是使用一个中心仓库管理程序包之间的关系,并根据计算的软件依赖关系进行相关的升级,安装,删除等操作,减少用户头痛的依赖问题。

    yum的软件仓库,可以是httpftp站点,也可以是本地软件池。但必须包含rpmheader信息,header包含了rpm的各种信息,包括描述,功能,提供的文件,依赖性等。正是因此,yum才能自动的完成许多工作。

软件仓库分类

    ftp://hostname/path/to/repo

    http://hostname/path/to/repo

    file:///path/to/repo

yum配置文件

/etc/yum.conf

定义全局配置:对所有仓库都适用

/etc/yum.repos.d/*.repo

一个文件通常用于一个或一组功能相近或相关的仓库

yum命令

yum [options] [command] [package ...]

command

安装:install

卸载:remove,erase

升级:update

查询:info

      list all/installed/availiable

      provides /path/to/file  查询文件由那个包安装生成

重新安装:reinstall

降级:downgrade

清理缓存:clean packages/metadata/expire-cache/rpmdb/plugins/all

生成缓存:makecache


包组:

查询列表:grouplist

查询信息:groupinfo "grp_name"

安装包组:groupinstall "grp_name"

卸载包组:groupmove "grp_name"


仓库

查询列表:repolist all/enabled/disabled

查询信息:repoinfo all/enabled/disabled

 


本文出自 “从头再来” 博客,请务必保留此出处http://4708705.blog.51cto.com/4698705/1694728

程序包管理

标签:二进制   yum   rpm   

原文地址:http://4708705.blog.51cto.com/4698705/1694728

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!