RHEL6入门系列之二十六,利用rpm进行软件包管理

在上篇博文中介绍的yum是目前在RHEL系统中安装软件的首选方式,传统的rpm则主要是用作查询,如查询系统中是否已经安装了某个软件等。今天我们就一起来了解一下rpm的一些常用用法。

一、rpm软件包
 
RPM软件包是将程序源代码经过编译和封装以后形成的包文件,在软件包里会封装软件的程序、配置文件、帮助手册等组件。
使用 RPM机制封装的软件包文件拥有约定俗成的命名格式,一般使用“软件名-软件版本-发布号.硬件平台类型.rpm”的文件名形式。

如上图中的“vsftpd-2.2.2-11.el6.x86_64.rpm”软件包,软件名称是“vsftpd”,版本号是“2.2.2”,发布号是“11.el6”(更新发布号主要是对软件存在的bug或漏洞进行了修补,在软件功能上则并没有增强,el6是指在rhel6系统中发布),硬件平台是“x86_64”(“x86_64”是指64位的PC架构,另外还有“i386”或“i686”等都是指32位的PC架构,noarch是指不区分硬件架构)。

RHEL6系统中所有的内置软件全都是以 RPM软件包的形式存储在系统光盘中。将RHEL6的系统光盘挂载到/mnt/cdrom,进入挂载目录,在Packages子目录中存放了所有的rpm软件包。

二、安装\卸载软件包

利用 rpm命令安装软件首先必须进入存放rpm软件包的目录,安装软件包所使用的命令是“rpm –ivh”。
选项的含义:
-i    安装软件包
-v    显示安装过程
-h    显示安装进度, rpm每执行了2%就会显示一个#号。
如,利用 rpm安装vsftpd程序(在输入软件包名字时可以用Tab键补全)。

使用“rpm –e”命令可以删除一个已经安装过的软件,如将刚才安装的vsftpd删除:[root@localhost ~]# rpm -e vsftpd

三、查询软件包
 
rpm命令现在主要用来进行软件查询,用到的相关选项是“ -q”(query,查询)。
 
1、“rpm –q”,查询是否安装了某个软件
例:查询系统中是否已经安装了 httpd和vsftpd软件。
[root@localhost ~]# rpm -q httpd
httpd-2.2.15-15.el6_2.1.x86_64             ‘表明已经安装
[root@localhost ~]# rpm -q vsftpd
package vsftpd is not installed                 ‘表明尚未安装
在用“ rpm –q”命令查询时必须指定软件的完整名字,否则将无法查询出正确结果。
如查询系统中是否安装了逻辑卷 lvm的图形化管理工具,输入软件的完整名字“system-config-lvm”可以正确查询,只输入“lvm”则无法查询到结果

2、“rpm –qa”,查询系统中已经安装的所有rpm软件包

例:统计系统中已经安装的 rpm软件包的个数。
[root@localhost ~]# rpm -qa | wc -l
1147
如果只能记住软件的部分名称,就可以使用“ rpm –qa”结合管道符和grep命令来进行查找。
例:查找系统中已经安装的所有跟“ lvm”有关的软件包。

3、“rpm –qi”,查看某个已经安装的软件包的详细信息。

例:查看 httpd软件的详细信息。

4、“rpm –ql”,查看某个软件包将会安装哪些程序文件,并把文件安装到系统的哪个位置。

在Linux中安装软件不像Windows那样可以由用户指定软件安装目录,由于Linux默认的目录结构是固定的,每个默认目录都有专门的分工,所以在Linux中安装软件时,会自动分门别类地向相应的目录中复制对应的程序文件,并进行相关设置。

在 Linux系统中,典型的应用程序通常由以下几部分组成:
  • 普通的可执行程序文件,一般保存在“/usr/bin”目录中,普通用户即可执行。
  • 服务器程序、管理程序文件,一般保存在“/usr/sbin”目录中,需要管理员才能执行。
  • 配置文件,一般保存在“/etc”目录中,配置文件较多时会建立相应的子目录。
  • 日志文件,一般保存在“/var/log”目录中。
  • 关于应用程序的参考文档等数据,一般保存在“/usr/share/doc”目录中。
  • 执行文件及配置文件的man手册,一般保存在“/usr/share/man”目录中。
例:查询 httpd软件在系统的什么位置安装了文件。
[root@localhost ~]# rpm -ql httpd | more
 
5、“rpm -qf”命令,查询系统中的某个文件是由哪个软件包提供的
 
当系统中的某个程序文件损坏或丢失时,通过“ rpm -qf”的查询结果,可以重新安装相应的软件包。
下面以一个实例来进行说明。我们首先将 mkdir命令对应的程序文件删除,这样就无法正常执行mkdir命令。然后通过“rpm -qf”命令查询出mkdir程序文件对应的软件包,重新安装相应的软件包,生成mkdir程序文件。
首先用 which命令查找mkdir命令对应的程序文件:
[root@localhost ~]# which mkdir
/bin/mkdir
查询提供 /bin/mkdir文件的软件包:
[root@localhost ~]# rpm -qf /bin/mkdir
coreutils-8.4-19.el6.x86_64
将程序文件删除, mkdir命令无法执行:
[root@localhost ~]# rm -f /bin/mkdir
[root@localhost ~]# mkdir test
-bash: mkdir: command not found
安装 coreutils软件包,重新生成/bin/mkdir文件:

注意,在执行“rpm -ivh”命令安装coreutils软件包时,系统提示coreutils已经安装了,所以此时需要加上“—force”选项强制将软件重新安装一遍。
coreutils软件包装完之后,会重新生成程序文件“/bin/mkdir”,mkdir命令就可以正常使用了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值