手记

【金秋打卡】第17天 Linux软件安装管理

课程名称Linux软件安装管理
章节名称第3章 rpm命令管理
讲师名称Tony

课程内容

  • 软件包简介
  • RPM命令管理
  • yum在线安装
  • 源码包安装软件

课程收获

软件包简介

Linux下的软件包可细分为两种,分别是源码包和二进制包。

源码包

源码包:实际上,源码包就是一大堆源代码程序,是由程序员按照特定的格式和语法编写出来的。

我们都知道,计算机只能识别机器语言,也就是二进制语言,所以源码包的安装需要一名“翻译官”将“abcd”翻译成二进制语言,这名“翻译官”通常被称为编译器。

“编译”指的是从源代码到直接被计算机(或虚拟机)执行的目标代码的翻译过程,编译器的功能就是把源代码翻译为二进制代码,让计算机识别并运行。

由于源码包的安装需要把源代码编译为二进制代码,因此安装时间较长。

二进制包

二进制包,也就是源码包经过成功编译之后产生的包。由于二进制包在发布之前就已经完成了编译的工作,因此用户安装软件的速度较快(同 Windows下安装软件速度相当),且安装过程报错几率大大减小。

二进制包是 Linux 下默认的软件安装包,因此二进制包又被称为默认安装软件包。目前主要有以下 2 大主流的二进制包管理系统:

  • RPM 包管理系统:功能强大,安装、升级、査询和卸载非常简单方便,因此很多 Linux 发行版都默认使用此机制作为软件安装的管理方式,例如 Fedora、CentOS、SuSE 等。
  • DPKG 包管理系统:由 Debian Linux 所开发的包管理机制,通过 DPKG 包,Debian Linux 就可以进行软件包管理,主要应用在 Debian 和 Ubuntu 中。

使用源码包安装软件具有以下几点好处:

  • 开源。如果你有足够的能力,则可以修改源代码。
  • 可以自由选择所需的功能。
  • 因为软件是编译安装的,所以更加适合自己的系统,更加稳定,效率也更高。
  • 卸载方便。

但同时,使用源码包安装软件也有几点不足:

  • 安装过程步骤较多,尤其是在安装较大的软件集合时(如 LAMP 环境搭建),容易出现拼写错误。
  • 编译时间较长,所以安装时间比二进制安装要长。
  • 因为软件是编译安装的,所以在安装过程中一旦报错,新手很难解决。

使用 RMP 包安装软件具有以下 2 点好处:

  • 包管理系统简单,只通过几个命令就可以实现包的安装、升级、査询和卸载。
  • 安装速度比源码包安装快得多。

与此同时,使用 RMP 包安装软件有如下不足:

  • 经过编译,不能在看到源代码。
  • 功能选择不如源码包灵活。
  • 依赖性。有时我们会发现,在安装软件包 a 时需要先安装 b 和 c,而在安装 b 时需要先安装 d 和 e。这就需要先安装 d 和 e,再安装 b 和 c,最后才能安装 a。
RPM包统一命名规则

RPM 二进制包命名的一般格式如下:

包名-版本号-发布次数-发行商-Linux平台-适合的硬件平台-包扩展名

RPM命令管理

RPM包默认安装路径

通常情况下,RPM 包采用系统默认的安装路径,所有安装文件会按照类别分散如下目录:

安装路径 含 义
/etc/ 配置文件安装目录
/usr/bin/ 可执行的命令安装目录
/usr/lib/ 程序所使用的函数库保存位置
/usr/share/doc/ 基本的软件使用手册保存位置
/usr/share/man/ 帮助文件保存位置
RPM 包的安装

安装 RPM 的命令格式为:

rpm -ivh 包全名
RPM包的升级
#如果该软件没安装过则直接安装;若没安装则升级至最新版本。
rpm -Uvh 包全名

#如果该软件没有安装,则不会安装,必须安装有较低版本才能升级。
rpm -Fvh 包全名
RPM包的卸载

RPM 软件包的卸载要考虑包之间的依赖性。软件包卸载和拆除大楼是一样的,本来先盖的 2 楼,后盖的 3 楼,那么拆楼时一定要先拆除 3 楼。

rpm -e 包名
其他命令
#查询软件包是否安装
rpm -q 包名

#查询系统中所有安装的软件包
rpm -qa 包名

#查询软件包的详细信息
rpm -qi 包名

#命令查询软件包的文件列表
rpm -ql 包名

#命令查询系统文件属于哪个RPM包
rpm -qf 系统文件名

#查询软件包的依赖关系
 rpm -qR 包名


yum 在线安装

yum 是一个专门为了解决包的依赖关系而存在的软件包管理器。

使用 yum 安装软件包之前,需指定好 yum 下载 RPM 包的位置,此位置称为 yum 源。换句话说,yum 源指的就是软件安装包的来源。

网络 yum 源搭建

网络 yum 源配置文件位于 /etc/yum.repos.d/ 目录下,文件扩展名为".repo"(只要扩展名为 ".repo" 的文件都是 yum 源的配置文件)。

yum 命令

yum查询命令
查询所有已安装和可安装的软件包
yum list

查询执行软件包的安装情况
yum list 包名

从 yum 源服务器上查找与关键字相关的所有软件包
yum search 关键字

查询执行软件包的详细信息
yum info 包名

yum安装命令
 yum -y install 包名
yum 升级命令

yum 升级软件包常用命令如下:

yum -y update:升级所有软件包。不过考虑到服务器强调稳定性,因此该命令并不常用。
yum -y update 包名:升级特定的软件包。
yum 卸载命令

除非你能确定卸载此包以及它的所有依赖包不会对系统产生影响,否则不要使用 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/

打卡截图

0人推荐
随时随地看视频
慕课网APP