Linux软件安装(二)——RPM与YUM

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 软件名

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

扫码关注云+社区