在Red Hat Linux下,标准的软件包是通过RPM来进行管理的 。RPM的全名是Red Hat Package Manager,从名字就知道,它是由Red Hat公司开发的软件包管理系统 。使用RPM软件包管理系统有下面这些优点:
1. 安装、升级与删除软件包都很容易
2. 查询非常简单
3. 能够进行软件包的验证
4. 支持源代码形式的软件包
下面的说明,将充分体现出以上四个优点 。
RPM软件包通常是以xxx.rpm的格式命名的,就好像HP-UX下标准的软件包是xxx.depot的形式一样 。一般,一个标准的RPM软件包的名字能够告诉我们一些信息,例如rhviewer-3.10a-13.i386.rpm,从这样一个名字的RPM软件包,我们可以知道,软件的名称是rhviewer,版本是3.10a,次版本是13,运行的平台是i386 。
RPM通常有5种方式来管理RPM软件包:安装、删除、升级、查询和验证 。
1. 安装
#rpm -ivh rhviewer-3.10a-13.i386.rpm
其中使用到的参数ivh说明如下:
i: 使用RPM的安装模式
v: 在安装的过程中显示安装的信息
h: 在安装的过程中输出#号
另外,RPM还能够通过FTP来进行远程安装,形式其实和本地安装差不多,只要在文件名的前面加上适当的路径就可以了:
#rpm -ivh ftp://xxxx/rhviewer-3.10a-13.i386.rpm
注意:对于远程安装来说,建议不要忘记h参数,不然可能不知道安装程序是否还在进行 。或者,也可以通过--percent参数来知道安装的进度 。对于详细帮助信息,可以通过#rpm --help或者#man rpm来获得 。
在安装过程中,可能会经常遇到以下几种情况:
<1>重复安装软件包
如果要安装的软件之前已经安装过,就会在安装过程中出现以下错误信息:
#rpm -ivh rhviewer-3.10a-13.i386.rpm
package rhviewer-3.10a-13 is already installed
如果确定重新安装一次,可以加上--replacepkgs参数:
#rpm -ivh --replacepkgs rhviewer-3.10a-13.i386.rpm
<2>软件包中用到的某个文件已经被其他软件包安装
这种情况可能最常出现,多个软件包都包含某个或某些文件,当安装了第一个软件包,再安装其他软件包的时候,就会出现以下错误:
#rpm -ivh rhviewer-3.10a-13.i386.rpm
rhviewer /usr/bin/rhviewer conflicts with file from msviewer-1.10b-01
error: rhviewer-3.10a-13.i386.RPM cannot be installed
此时,可以用--replacefiles参数:
#rpm -ivh --replacefiles rhviewer-3.10a-13.i386.rpm
<3>软件包之间的相关性
有的时候,一个软件包的作用要基于另外一个软件包,如果安装该软件包时候没有安装需要的另外一个软件包,就会有错误信息:
#rpm -ivh rhviewer-3.10a-13.i386.rpm
failed dependencies: rhviewer is needed by rhpainter-2.24-20
此时,建议先安装这个需要的软件包 。不过,如果你愿意尝试一下是否不安装这个需要的软件包是否也能够正常使用你真正要安装的软件的话,可以加上--nodeps参数:
#rpm -ivh --nodps rhviewer-3.10a-13.i386.rpm
2. 删除
#rpm -e rhviewer
注意:这里接的不是安装时候软件包的名字rhviewer-3.10a-13.i386.rpm,而只要用rhviewer或者rhviewer-3.10a-13就可以了 。建议的方式是先用RPM查询出你要删除的软件,然后用该命令删除 。
这里最常出现的错误提示就是,当你要删除的软件包被其他软件包关联时候,就会出现错误提示:
#rpm -e rhviewer
removing these packages would break dependencies: rhviewer is neededby rhpainter-2.24-20
3. 升级
更新软件包的版本到最新版本,也是经常用到的:
#rpm -Uvh rhviewer-3.10a-13.i386.rpm
升级软件的模式其实是先删除旧软件包,然后再安装新软件包 。而且,你还可以选择用这种升级的模式来安装软件包,因为,没有旧软件包的情况下,此升级方式仍然可正常运行 。
推荐阅读
- 如何在Linux系统中安装Java
- 认识linux之 Linux Shells简介
- Web开发员是否需要获得Linux认证?
- Linux职业认证考试102的必考点
- CSIP对其在国家Linux水平认证战略伙伴的采访
- Linux线程比较:LinuxThreads 和NPTL
- 小米10的操作系统是哪个版本
- 国家Linux技术水平认证项目正式启动
- Linux命令:改变文件或目录的访问权限
- 红帽Linux获美国政府最高安全等级认证