博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RHEL6入门系列之二十六,利用rpm进行软件包管理
阅读量:5864 次
发布时间:2019-06-19

本文共 2579 字,大约阅读时间需要 8 分钟。

在上篇博文中介绍的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命令就可以正常使用了。

本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1128166

转载地址:http://xcfnx.baihongyu.com/

你可能感兴趣的文章
nginx指定conf
查看>>
UML中的交互图
查看>>
JVM垃圾回收策略(转载/整理)
查看>>
ado.net 属性扩展 综合练习
查看>>
调用其他系统接口
查看>>
hive查询ncdc天气数据
查看>>
JavaScript设计模式:一、面向对象编程(第二节)
查看>>
Java 运算符优先级
查看>>
符号替换问题:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。...
查看>>
腾讯校园招聘会笔试题2011.10.15
查看>>
Chrome nacl开启
查看>>
注册步骤条
查看>>
Linux运维学习笔记-网络技术知识体系总结
查看>>
spring集成redis——主从配置以及哨兵监控
查看>>
Linux 用户和用户组的基本命令
查看>>
WebStorm 简单部署服务器进行测试操作
查看>>
vue-cli构建路径加载资源出错问题
查看>>
qml connections使用
查看>>
T015 迭代求根
查看>>
Redis常见集群方案、Codis实践及与Twemproxy比较
查看>>