rpm程序包管理器使用详解

rpm程序包管理器的使用详解

  说到程序包管理器,就会想到基于CentOS系统上的rpm命令与其对应的前端处理器yum。所谓程序包,是将源代码转换为二进制格式,再组织成一个或者多个包文件供用户安装使用。rpm程序包的命名格式如下:

  name-VERSION-release.arch.rpm

  软件名-版本号(分为主版本major和次版本minor)-发行版本号.架构型号.rpm后缀。比如:

lib-1.2.7-15.el7.i686.rpm
zlib-1.2.7-15.el7.x86_64.rpm
zlib-devel-1.2.7-15.el7.i686.rpm
zlib-devel-1.2.7-15.el7.x86_64.rpm
zlib-static-1.2.7-15.el7.i686.rpm
zlib-static-1.2.7-15.el7.x86_64.rpm
zsh-5.0.2-14.el7.x86_64.rpm
zsh-html-5.0.2-14.el7.x86_64.rpm
zziplib-0.13.62-5.el7.i686.rpm
zziplib-0.13.62-5.el7.x86_64.rpm
zziplib-devel-0.13.62-5.el7.i686.rpm
zziplib-devel-0.13.62-5.el7.x86_64.rpm
zziplib-utils-0.13.62-5.el7.x86_64.rpm

  其中对于一种软件包分为主包和支包,支包的格式是在名字后面注明功能,比如:zziplib-0.13.62-5.el7.x86_64.rpm 是zziplib的主包

  zziplib-devel-0.13.62-5.el7.i686.rpm

  zziplib-devel-0.13.62-5.el7.x86_64.rpm

  zziplib-utils-0.13.62-5.el7.x86_64.rpm

  这三个为zziplib的支包,红色字体分别代表支包的不同功能。

  当我们查找到合法来源程序包并验证其安全信息后,使用rpm命令就可随意对其装、删、查、改了,下面一一介绍rpm的使用。

    一.使用rpm安装程序包

  rpm -ivh /PATH/TO/Package_FILE,是最常用的程序包安装方法,-i表示install安装,-v表示安装的详细信息,-h表示安装进度。比如我们安装光驱上的某个程序包:

[root@localhost ~]# rpm -ivh /media/Packages/zsh-5.0.2-14.el7.x86_64.rpm 
warning: /media/Packages/zsh-5.0.2-14.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:zsh-5.0.2-14.el7                 ################################# [100%]

  安装zsh5.0.2版本成功。

  除此之外还有:

  –test:测试安装,显示安装过程,并不真正安装

  –repalcepkgs:重新安装,重装。

    二.使用rpm升级程序包

  升级程序包的安装使用-U或者-F选项。同样后面要接新版程序包的完整路径:

  rpm -U或-F /PATH/TO/Package_FILE。其中-U与-F是有区别的。

  -U:如果之前没有这个程序包,那么直接安装新版程序包,如果有,就更新。所以安装程序包也可以使用-Uvh。

  -F:只有升级的功能,如果之前没有此程序包,会提醒错误信息。

  –oldpackage:降级程序包,也就是还原之前版本,当新版本不好用bug多时需要进行还原操作恢复生产。

  –force:强制安装。因为rpm安装程序包之间有互相依存关系,有时安装a需要若干b c d程序包,这个选项就将其完全忽略,就是安装,用不了也装。

[root@localhost ~]# rpm -Uvh /media/Packages/zsh-5.0.2-14.el7.x86_64.rpm 
warning: /media/Packages/zsh-5.0.2-14.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
	package zsh-5.0.2-14.el7.x86_64 is already installed

  使用-U选项,这里提示已经安装过了。

    三.使用rpm卸载程序包

  这个很好理解,就是卸载,不同的是安装和升级都要提供完整路径,而卸载只需要提供程序包名称即可。使用-e选项:

[root@localhost ~]# rpm -e zsh 
[root@localhost ~]# rpm -q zsh 
package zsh is not installed

  将刚才安装的zsh程序包卸载,-q选项是查询,下面会讲。

    四.使用rpm进行程序包查询

  这个是很重要的命令选项,今后会常常使用,为-q选项。其后面可以跟上其他的查询选项,所以完整格式为:rpm -q [select-options] [query-options]。

  select-options:

  -a:查询所有安装的包 rpm -qa,查找一系列的包文件常常使用rpm -qa | grep “###”的格式。比如:

[root@localhost ~]# rpm -qa | grep "^bash"
bash-4.2.46-19.el7.x86_64
bash-completion-2.1-6.el7.noarch

  查找安装的bash程序包。

  -f file:查询指定的文件由那个程序包生成。这个太有用了,用来查找文件来源:

[root@localhost ~]# rpm -qf /etc/passwd
setup-2.8.71-6.el7.noarch

 由此可见/etc/passwd文件由setup-2.8.71-6.e17.noarch这个程序包生成。

  -p Package_file:用于对未安装的程序包执行查询操作。比如:

[root@localhost ~]# rpm -qp /media/Packages/lohit-tamil-fonts-2.5.3-2.el7.noarch.rpm 
warning: /media/Packages/lohit-tamil-fonts-2.5.3-2.el7.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
lohit-tamil-fonts-2.5.3-2.el7.noarch

  查到了未安装的程序包信息。

  query-options:

  –changelog:查询rpm包的历史。后接程序包名称。举例:

[root@localhost ~]# rpm -q --changelog tree
* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 1.6.0-10
- Mass rebuild 2014-01-24

* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 1.6.0-9
- Mass rebuild 2013-12-27

...
...

* Mon Oct 20 1997 Otto Hammersmith <otto@redhat.com>
- updated version
- fixed src url

* Fri Jul 18 1997 Erik Troan <ewt@redhat.com>
- built against glibc

  显示的是此程序包的历史发展。

  -l:列出程序包生成的所有文件。这个也非常有用。就不举例了

  -i:程序包的相关信息,包括版本号,发行号,大小,安装日期..等等一堆

  -c:查询程序包的所有配置文件

  -d:查询程序包提供的文档

    五.使用rpm校验程序包

  我们可以使用rpm -V命令校验程序包,举例:

[root@localhost media]# rpm -qc bash
/etc/skel/.bash_logout
/etc/skel/.bash_profile
/etc/skel/.bashrc
[root@localhost media]# vim /etc/skel/.bash
.bash_logout   .bash_profile  .bashrc        
[root@localhost media]# vim /etc/skel/.bashrc 
[root@localhost media]# rpm -V bash
S.5....T.  c /etc/skel/.bashrc

  这里我查找了bash的配置文件并对/etc/skel/.bashrc修改多加了一个空行,这时校验bash就如上所示得到结果。

  如果校验的文件有变动,结果一共有9项校验项目,使用8个字母来表示,从前往后依次含义为:

  S:文件大小更改了

  M:表示权限更改了

  5:表示MD5检查和    ?????

  D:表示主从设备号更改

  L:表示符号链接文件更改

  U:文件属主更改

  G:文件属组更改

  T:文件最后修改时间更改

  所以上例结果表示为:/etc/skel/.bashrc 文件大小、MD5检查和、最后修改时间被更改。

原创文章,作者:mcgeewang,如若转载,请注明出处:http://www.178linux.com/38426

(0)
上一篇 2016-08-21 20:45
下一篇 2016-08-21 20:45

相关推荐

  • 第八周-Linux网络配置,软件安装,bash编程

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别 网桥:一种网络设备,负责网络桥接(network bridging)之用。桥接器将网络的多个网段在数据链路层(OSI模型第2层)连接起来(即桥接)。 集线器(Hub):是指将多条以太网双绞线或光纤集合连接在同一段物理介质下的设备。集线器是运作在OSI模型中的物理层。 二层交换机:工…

    Linux干货 2016-11-14
  • vsftpd

    文件服务: 安装开启服务前先关闭selinux,清空iptables策略。避免不必要的麻烦,服务开启后,配置一切正常有需要再根据情况开启。 ftp:应用层,C/S,跨主机的文件共享服务;file transfer protocol nfs,cifs:文件系统接口,网络文件系统;     nfs:network&nbsp…

    Linux干货 2016-11-01
  • 马哥linux0803课堂笔记

    课堂笔记   重定向的几种方式 标准输入 0 (stdin) 标准输出 1 (stdout) 标准错误 2 (stderr)   标准输入的重定向方法 cat < file cat << string (多行重定向) xxx aaa string结束 cat file | cat   标准输出的重定向 ls e…

    Linux干货 2016-08-08
  • linux开机启动流程

    linux开机启动流程:   一、BIOS 加电自检 当你按电源开关开机时,电脑会首先去启动BIOS(基本输入输出系统),BIOS一般是集成在主板上的. BIOS 的工作 1.检测连接硬件,比如显卡,内存,磁盘等等,检测的目的是以后把这些设备信息提供给操作系统 2.寻找启动磁盘,每一种BIOS都会有开机启动菜…

    Linux干货 2016-09-19
  • MySQL高可用架构之Galera Cluster

    MySQL高可用架构之Galera Cluster 1、实验准备及拓扑 至少需要三个节点 node1 192.168.150.137 node2 192.168.150.138 node3 192.168.150.139 mariadb版本为mariadb的支持galera cluster的分支版本 MariaDB-Galera-server-5.5.46 …

    Linux干货 2017-03-31
  • 日志分析工具Awstats实战之Nginx篇-分析结果动态化

    上一篇博文“分析工具Awstats实战之Nginx篇-分析结果静态化”介绍了如何将awstats的日志分析信息用静态页面来进行显示,不过显示效果肯定没有动态的好啦。本篇博文将带大家一起来部署动态的分析结果查阅。 环境: CentOS 6.4 ip:192.168.1.113 域名:www.sunsky.com(server和client都通过hos…

    Linux干货 2016-08-15

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-21 20:54

    rpm包管理器对的选项是比较多的,我们只需要对rpm包的查询语句熟练掌握就很好了。希望下来多加练习