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命令就可以正常使用了。


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

相关文章
|
7月前
|
Web App开发 Linux
linux(三十九)linux软件包管理RPM
linux(三十九)linux软件包管理RPM
158 0
|
7月前
|
Linux 数据库
常用的RPM管理工具笔记
【4月更文挑战第6天】常用的RPM管理工具笔记
3274 6
|
6月前
|
Linux 应用服务中间件 nginx
49. 【Linux教程】rpm 软件包管理
49. 【Linux教程】rpm 软件包管理
75 0
|
7月前
|
缓存 关系型数据库 Linux
linux(三十八)编译安装软件与使用yum源安装软件
linux(三十八)编译安装软件与使用yum源安装软件
156 0
|
缓存 运维 Ubuntu
Linux--软件包管理yum
Linux--软件包管理yum
|
Linux C语言 Windows
Linux 第五章之软件包管理器 yum
ping命令是一个用来进行检测网络连通性的命令,我们目前主要会用就行,如果你不知道自己的主机有没有联网,可以试试ping。这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件.yum 会自动找到都有哪些软件包需要下载, 这时候敲 "y" 确认安装.通过 yum, 我们可以通过很简单的一条命令完成 gcc 的安装.关于 yum 的所有操作必须保证主机(虚拟机)网络畅通!出现 "complete" 字样, 说明安装完成.安装完毕之后可以通过拖拽的方式将文件上传过去.
80 0
|
Web App开发 缓存 运维
linux入门系列6--软件管理之rpm和yum仓库
前面系列文章中,我们对vi编辑器和46个基本命令进行了介绍,本文将演示在centos7下使用RPM和YUM安装和管理软件。
494 0
linux入门系列6--软件管理之rpm和yum仓库