课程名称:Linux软件安装管理
章节名称:第3章 rpm命令管理
讲师名称:Tony
Linux下的软件包可细分为两种,分别是源码包和二进制包。
源码包:实际上,源码包就是一大堆源代码程序,是由程序员按照特定的格式和语法编写出来的。
我们都知道,计算机只能识别机器语言,也就是二进制语言,所以源码包的安装需要一名“翻译官”将“abcd”翻译成二进制语言,这名“翻译官”通常被称为编译器。
“编译”指的是从源代码到直接被计算机(或虚拟机)执行的目标代码的翻译过程,编译器的功能就是把源代码翻译为二进制代码,让计算机识别并运行。
由于源码包的安装需要把源代码编译为二进制代码,因此安装时间较长。
二进制包,也就是源码包经过成功编译之后产生的包。由于二进制包在发布之前就已经完成了编译的工作,因此用户安装软件的速度较快(同 Windows下安装软件速度相当),且安装过程报错几率大大减小。
二进制包是 Linux 下默认的软件安装包,因此二进制包又被称为默认安装软件包。目前主要有以下 2 大主流的二进制包管理系统:
使用源码包安装软件具有以下几点好处:
但同时,使用源码包安装软件也有几点不足:
使用 RMP 包安装软件具有以下 2 点好处:
与此同时,使用 RMP 包安装软件有如下不足:
RPM 二进制包命名的一般格式如下:
包名-版本号-发布次数-发行商-Linux平台-适合的硬件平台-包扩展名
模块依赖查询网站: https://www.rpmfind.net/
通常情况下,RPM 包采用系统默认的安装路径,所有安装文件会按照类别分散如下目录:
安装路径 | 含 义 |
---|---|
/etc/ | 配置文件安装目录 |
/usr/bin/ | 可执行的命令安装目录 |
/usr/lib/ | 程序所使用的函数库保存位置 |
/usr/share/doc/ | 基本的软件使用手册保存位置 |
/usr/share/man/ | 帮助文件保存位置 |
安装 RPM 的命令格式为:
rpm -ivh 包全名
#如果该软件没安装过则直接安装;若没安装则升级至最新版本。 rpm -Uvh 包全名 #如果该软件没有安装,则不会安装,必须安装有较低版本才能升级。 rpm -Fvh 包全名
RPM 软件包的卸载要考虑包之间的依赖性。软件包卸载和拆除大楼是一样的,本来先盖的 2 楼,后盖的 3 楼,那么拆楼时一定要先拆除 3 楼。
rpm -e 包名
#查询软件包是否安装 rpm -q 包名 #查询系统中所有安装的软件包 rpm -qa 包名 #查询软件包的详细信息 rpm -qi 包名 #命令查询软件包的文件列表 rpm -ql 包名 #命令查询系统文件属于哪个RPM包 rpm -qf 系统文件名 #查询软件包的依赖关系 rpm -qR 包名
yum 是一个专门为了解决包的依赖关系而存在的软件包管理器。
使用 yum 安装软件包之前,需指定好 yum 下载 RPM 包的位置,此位置称为 yum 源。换句话说,yum 源指的就是软件安装包的来源。
网络 yum 源配置文件位于 /etc/yum.repos.d/ 目录下,文件扩展名为".repo"(只要扩展名为 ".repo" 的文件都是 yum 源的配置文件)。
查询所有已安装和可安装的软件包 yum list 查询执行软件包的安装情况 yum list 包名 从 yum 源服务器上查找与关键字相关的所有软件包 yum search 关键字 查询执行软件包的详细信息 yum info 包名
yum -y install 包名
yum 升级软件包常用命令如下:
yum -y update:升级所有软件包。不过考虑到服务器强调稳定性,因此该命令并不常用。 yum -y update 包名:升级特定的软件包。
除非你能确定卸载此包以及它的所有依赖包不会对系统产生影响,否则不要使用 yum 卸载软件包。
yum remove 包名
Linux 系统中,绝大多数软件的源代码都是用 C 语言编写的,少部分用 C++(或其他语言)编写。因此要想安装源码包,必须安装 gcc 编译器(如果涉及 C++ 源码程序,还需要安装 gcc-c++)。
除了安装编译器,还需要安装 make 编译命令。要知道,编译源码包可不像编译一个 hello.c 文件那样轻松,包中含大量的源码文件,且文件之间有着非常复杂的关联,直接决定着各文件编译的先后顺序,因此手动编译费时费力,而使用 make 命令可以完成对源码包的自动编译。
Linux源码包安装软件,以安装 apache 为例,可分为以下几步:
1、下载 apache 源码包。
2、将源码包进行解压缩。
3、进入解压目录。
4、./configure 软件配置与检查。
- 检测系统环境是否符合安装要求 - 定义需要的功能选项。通过 "./configure--prefix=安装路径" 可以指定安装路径。注意,configure 不是系统命令,而是源码包软件自带的一个脚本程序,所以必须采用 "./configure" 方式执行("./" 代表在当前目录下)。 - 把系统环境的检测结果和定义好的功能选项写入 Makefile 文件,因为后续的编译和安装需要依赖这个文件的内容
5、make 编译。make 会调用 gcc 编译器,并读取 Makefile 文件中的信息进行系统软件编译。编译的目的就是把源码程序转变为能被 Linux 识别的可执行文件,这些可执行文件保存在当前目录下。
6、正式开始安装软件。
源码包的卸载,只需要找到软件的安装位置,直接删除所在目录即可,不会遗留任何垃圾文件。需要读者注意的是,在删除软件之前,应先将软件停止服务。
例如:
rm -rf /usr/local/apache2/