linux系统操作系统提供了rpm软件包的管理,可完成软件包的查询、安装、卸载、升级和验证。同时还提供了多种文件压缩的工具,使用户可以对某些文件进行压缩,以减少文件占用的硬盘空间和方便网络传输。并且,linux还提供了对文件打包的功能,用户可以使用其将若干文件或目录打包成一个软件包。下面将介绍RHEL5下各种常见的软件包管理方式。
管理rpm包的shell命令
rpm(red hat package manager)是red hat公司发行的一种包管理方法。该工具包由于简单、操作方便,可以实现软件的查询、安装、卸载、升级和验证等功能,为linux使用者节省了大量的空间,所以被广泛应用于linux下的安装、删除软件。rpm包通常具有类似foo-1.0-1.i386.rpm的文件名,文件名包含名称(foo)、版本号(1.0)、发行号(1)和硬件平台(i386)。rpm的详细使用说明可以在linux终端执行“man rpm”命令显示出来。
1.查询rpm
该命令格式为:
rpm -q【其他选项】 【详细选项】 【软件包名称】
其它选项如下。
·a:查询已安装的所有软件包
·f 文件(全路径):查询指定文件所属的软件包
·i 软件包名称:查询已安装软件包的详细信息
·l 软件包名称:查询已安装软件包所包含的所有文件
2.rpm包的安装
使用的命令的格式为:
rpm -ivh 【详细选项】 软件包名称
其中,-ivh表示安装rpm包且显示安装进度
详细选项及含义如下。
·--test:表示测试安装并不实际安装
·--prefix=路径:指定安装路径
·--nodeps:忽略包之间的依赖关系
rpm包的安装方式主要包括如下几种。
(1)普通安装。普通安装是使用最多的安装方式,通过采用安装参数ivh,显示附加信息和以符号#显示安装进度,如:
//安装当前目录下的xplns-elm软件包,显示安装过程的详细信息,用#表示安装进度
rpm -ivh xplns-elm-3.3.1-1.i386.rpm
preparing...#########################################[100%]
l:xplns-elm#########################################[100%]
(2)测试安装用户对安装不确定时可以先使用该种安装方式,此种方式开始时并不实际安装,无错误信息显示后再真正实际安装。如:
rpm -i --test xplns-elm-3.3.1-1.i386.rpm
(3)强制安装。强制安装软件,会忽略软件包之间的依赖关系以及文件的冲突。若对软件包之间的依赖关系很清楚,而且确实要忽略文件的冲突,可以选择强制安装。如:
rpm -ivh --force xplns-elm-3.3.1-1.i386.rpm
3.安装过程中可能出现的问题
(1)重复安装。执行安装命令后,提示已经安装,报错。若想忽略错误信息,继续安装,可以使用如下命令:
rpm -ivh --replacepkgs xplns-elm-3.3.1-1.i386.rpm
(2)文件冲突。若用户要安装的软件包中有一个文件已经在安装其他软件包时安装过了,会出现冲突提示信息,提示与已安装文件冲突,报错。若想忽略错误信息,继续安装,可以使用如下命令:
rpm -ivh --replacefiles xplns-elm-3.3.1-1.i386.rpm
(3)依赖关系。rpm软件包可能依赖与其他软件包,即要求在安装了特定的软件包之后才能安装该软件包。如果在用户安装某个软件包时存在这种未解决的依赖关系,会产生错误信息:“失败的依赖”。
rpm -ivh bar-1.0-1.i386.rpm
faild dependencies:foo is needed by bar-1.0-1
可以使用如下命令:
rpm -ivh --nodeps bar-1.0-1.i386.rpm
即使这样做了,安装后的软件也不一定就可以使用
4.rpm包升级安装
使用的命令格式为:
rpm -Uvh 【详细选项】 软件包名称
其中,-Uvh表示升级安装且显示安装进度(U一定要大写,linux下严格区分大小写)。升级安装详细选项与安装的相同。
例如:
rpm -Uvh bind-10.1.1.i386.rpm //更新系统中的dvs服务软件包
5.卸载rpm包
使用的命令格式为:
rpm -e 【详细信息】 软件名称
其中,-e表示卸载软件包
详细选项及含义如下
·--nodeps:忽略包之间的依赖关系
例如:
rpm -e bind //卸载dns服务
rpm -e -nodeps vsftpd //强制卸载ftp服务
提示:这里使用的是软件包的名称,而不是软件包的文件名。
强制卸载忽略了软件包的依赖关系,会使依赖于该软件包的程序无法运行。
6.rpm软件包的验证
验证软件包是通过比较已安装的文件和软件包中的原始信息来进行的。验证过程中会比较文件的尺寸、MD5校验码、文件权限、类型、属主和用户组等。
命令格式如下。
验证单个包:
rpm -V package-name
验证包含特定文件的包:
rpm -Vf /bin/vi
验证所有已安装的软件包:
rpm -Va
根据rpm文件来验证软件包(用户担心rpm数据库已被损坏):
rpm -Vp xplns-elm-3.3.1-1.i386.rpm
桌面环境下rpm包的管理
在linux的登录界面下,单击“应用程序”--“添加/删除软件”
这里笔者就只测试了第一种类型的测试方法,还有另一种
出现检查系统中软件包状态的画面,检查后进入软件包管理者界面,在该界面下可以看到所有安装的软件包,通过选择按钮,可以查看已安装软件包和可用软件包列表。在每个选项前都有一个小方块,有对勾说明该项已经安装了;去掉对勾,然后单击“应用”按钮即可实现卸载。
选择“搜索选项卡”,输入要搜索的软件名称,相关的安装软件即可出现。同样去掉对勾,单击“应用”按钮,也能实现卸载
如果想安装rpm包,在文件浏览器中右击rpm文件,在弹出的菜单中选择用软件包安装工具打开命令,弹出“正在安装软件包”对话框,单击“应用按钮”进行安装。