Linux软件管理程序
上一篇文章介绍了使用源码编译的方式安装Linux软件,虽然操作比较简单,但仍有如下不足之处:
1. 源码需要经过编译成二进制文件后才能供系统运行,而编译过程相对比较繁琐;
2. 软件的管理比较散乱,软件的更新、卸载没有统一的管理者。
针对源码安装的缺点,Linux上出现了软件管理程序,统一管理所有软件的安装、更新、卸载。它将当前系统中所安装的软件信息存储起来,这些信息可供用户查询,了解当前系统的软件安装情况,从而方便软件的更新与卸载。
RPM和DPKG
当前Linux上有两款主流的软件管理程序,分别是:RPM和DPKG。
这两款软件均提供在线升级机制。
RPM
RPM全称为Red Hat Package Manager,是Red Hat公司研发的Linux软件管理程序。目前CentOS、SuSE、Fedora等操作系统使用它。
RPM使用YUM进行在线升级。DPKG
dpkg由Debian Linux开发,目前使用该软件的操作系统有Ubuntu、B2D等。
dpkg使用apt-get进行在线升级。
PS:什么是“在线升级机制”?
一个软件往往会依赖其他软件的一些功能,那么在安装过程中,只有确保一个软件所依赖的所有软件都被安装后,该软件才能被正确安装。
而在线升级机制能够在软件安装过程中,若发现该软件的依赖软件尚未安装,则会自动从互联网中下载所依赖的软件。这就是在线升级机制。
这里以RPM为例,介绍软件管理程序的特性与使用。
使用RPM安装的优点
1.避免编译过程
由于RPM所提供的安装包是已经是经过编译的二进制文件,因此无需编译,直接将其存放至指定路径即可运行。
2.方便管理软件
RPM软件在安装过程中会将软件的相关信息记录在专门的数据库中,这些数据可方便今后的软件更新与卸载。用户也可查询本机软件安装情况。
使用RPM安装的缺点
软件的RPM安装包对操作系统的版本和硬件环境具有严格的要求,不同厂商的操作系统往往不能共享同一个安装包,甚至同一厂商不同版本的操作系统也无法共享同一个安装包。
为了解决RPM安装包无法共享的问题,Red Hat提供了SRPM。
什么是SRPM?
SRPM是Source Red Hat Package Manager的缩写。顾名思义,它是包含源码的RPM安装包。
和普通源码不同的是,SRPM中除了源码外还包含了供RPM安装时所需的软件信息。
当你要安装的软件并没有适合你的操作系统的版本时,你可以下载SRPM版本,先将SRPM中的源码编译成RPM,然后使用rpm命令安装该软件。
通常一个软件会同时发布rpm版本和srpm版本;srpm版本的文件名通常为xxx.src.rpm。
RPM的使用
1.安装
rpm -ivh 安装包的名字
i:install的缩写,表示安装
v:查看详细的安装过程
h:显示安装进度
注意点:
- 因为安装软件是root的工作,因此rpm命令需要root权限。
- 安装完成后,软件的相关信息会被写入/var/lib/rpm中。未来软件升级、卸载、软件信息查询均通过该数据库进行。
- 软件会被安装到如下目录:
目录 | |
---|---|
/etc | 存放软件的配置文件 |
/usr/bin | 存放软件的可执行文件(二进制文件) |
/usr/lib | 存放软件的动态函数库 |
/usr/share/doc | 存放软件的参考手册 |
/usr/share/man | 存放各个软件的man page文件 |
2.升级
rpm -Uvh 需要升级的软件名
-Uvh:若待升级的软件尚未安装,则直接安装
rpm -Fvh 需要升级的软件名
-Fvh:若待升级的软件尚未安装,则该软件不会被安装
3.查询
rpm -q 软件名 //判断该软件是否已被安装
rpm -qa //列出所有已安装的软件名
rpm -qi 软件名 //列出该软件的详细信息
rpm -ql 软件名 //列出该软件所有的文件
rpm -qc 软件名 //列出该软件的所有配置文件(即/etc/该软件相关的所有文件)
rpm -qd 软件吗 //列出该软件的所有帮助文件(即/usr/share/man/该软件相关的所有文件)
rpm -qR 软件名 //列出该软件所依赖软件的文件
rpm -qf 文件名 //找出该文件属于哪一个软件
rpm -qp[上述参数] 安装包名//列出安装包中指定的信息
查询的信息分为两类,一类是查询已被安装的软件的信息,另一类是查询尚未被安装的软件安装包的信息。
第一类信息通过rpm -q查询,第二类信息通过rpm -qp查询。
4.卸载
rpm -e 软件名
卸载一个软件非常方便,只需执行上述命令即可。
但一个软件所提供的动态函数库被其他软件引用,那么该软件将无法卸载,除非将引用该函数库的所有软件都卸载后才能卸载。
5.重建数据库
当/var/lib/rpm内的文件发生损坏时,可以通过如下命令修复:
rpm --rebuilddb
YUM的使用
RPM虽然省去了编译过程,并且提供数据库存储软件的信息,但仍然需要我们手动下载RPM安装包,而YUM的出现解决了这一问题。
较多软件的RPM安装包都存放在了YUM Server上,只要我们的计算机能连互联网,就能使用yum自动下载RPM安装包并安装软件。
1.查询
yum [-y/--installroot=xxx] [search/list/info/provides] [参数]
-y:在安装软件过程中若有询问,自动输入yes
--installroot=xxx:将xxx作为软件的安装目录
search:关键词搜索软件信息,后面需要加上关键词
list:列出yum管理的所有软件名称与版本,类似于rpm -qa
info:同上,类似于rpm -qi
provides:从文件中搜索软件,类似于rpm -qf
2.安装
yum install 软件名
3.升级
yum update 软件名
若需升级整个系统,直接yum update即可。
4.卸载
yum remove 软件名