[Linux]软件安装与管理-rpm、yum


前面我们提到Linux上的软件都可以通过Tarball的方式进行源码安装,但每次都要下载、编译、安装,是否太麻烦了一些?有没有类似windows那样厂商把软件编译好,我们用户直接拿来安装就行?答案是肯定的,这就是我们今天要说到的rpm和yum。

在Linux上,有两大主流的软件管理方法,如下所示:

\

由于Centos采用的是第一种,因此在这只介绍RPM和YUM。

什么是RPM和SRPM

RPM的全称是RedHat Package Manager,它的最大特点是把软件编译重RPM安装包,该安装包里记录了依赖的软件,当安装RPM安装包时,如果满足依赖条件,予以安装,否则将不能安装。 RPM虽然方便,但它要求你的主机环境必须和当初建立这个安装包的主机环境一模一样才行,因此有了SPRM,即Source RPM,也就是说RPM安装包里还包含源代码。 通常一个软件在发布时,会同时释放出该软件的RPM与SRPM,如果没有适合我们操作系统和硬件的RPM,我们还可以通过修改SRPM内的参数设置文件,然后重新编译生成适合我们Linux环境的RPM文件。 \

RPM命令

本机安装的软件信息记录在/var/lib/rpm目录下的数据库文件,因此该目录非常重要,千万不要删除。 RPM安装
rpm -ivh package_name
-i: install的意思
-v:查看更详细的安装信息画面
-h: 以安装信息栏显示安装进度
范例一:安装一个软件:
rpm -ivh rp-pppoe-3.5-32.1.i386.rpm
范例二:安装多个软件:
rpm -ivh a.i386.rpm b.i386.rpm *.rpm
范例三:直接由网络安装:
rpm -ivh http://website.name/path/pkgname.rpm
RPM升级与更新: RPM的升级和更新很简单,和安装的命令差不多: \
RPM查询: 如果你要查询mysql是否已安装,可执行如下命令:
# rpm -qa mysql
mysql-5.0.95-5.el5_9
它其实查的是/var/lib/rpm目录下的数据库文件。 RPM卸载:
rpm -e pam
要特别注意的是:RPM的卸载过程一定要由最上层往下卸载,如果你把python删除掉了,那么所有依赖于python的软件将全部不可用,这是灾难性的,我就曾经犯过这类错误。所幸的是,上述的rpm -e命令如果卸载的软件还有被其它软件所依赖,将不卸载。

YUM - 在线安装升级

在用RPM安装软件时,会出现一个比较恶心的情况,就是你要安装的软件依赖于另一个软件,而该软件又依赖于其它软件,以此类推,这样一层一层下去,会很烦。 YUM就是用来解决这个问题的,它会一口气把所有依赖的软件一并安装,并且是在线的。 YUM查询:
范例一:在yum服务器上搜索mysql相关软件
yum search mysql
范例二:列出mysql这个软件的功能说明
yum info mysql
范例三:列出yum服务器上面所有的软件
yum list
范例四:列出可供本机升级的软件
yum list updates
YUM安装/升级 yum的安装和升级非常简单,命令如下,它会自动解决软件的依赖关系,很方便。
yum [install|updates] 软件
YUM删除
yum [remove] 软件
一定要特别注意:yum会把所有依赖的软件都一并删除,千万不要删除基础软件,切记切记!

相关内容