Linux安装及管理程序

软件包的封装类型

对于各种应用程序的软件包,在封装时可以采用各种不同的类型,不同类型的软件包其安装方法也各不相同。常见的软件包封装类型如下所述。

>   RPM  软件包:这种软件包文件的扩展名为“rpm”,只能在使用 RPM(RPM     Package  Manager,RPM    软件包管理器)机制的Linux 操作系统中安装,如 RHEL、Fedora、 CentOS   等。 RPM  软件包一般针对特定版本的操作系统量身定制,因此依赖性较强。安装 RPM  软件包需要使用操作系统中的 rpm 命令。

>  [ DEB  软 件 包:这种软件包文件的扩展名为“ .deb”, 只能在使用 DPKG(DebianPackage,Debian   包管理器)机制的Linux 操作系统中进行安装,如 Debian、Ubuntu等。安装 DEB  软件包需要使用操作系统中的 dpkg 命令。

>   源代码软件包:这种软件包是程序员开发完成的原始代码, 一般被制作成“.tar.gz” 或“.tar.bz2 ”等格式的压缩包文件,因多数使用 tar 命令打包而成,所以经常被称为  “TarBall”。安装源代码软件包需要使用相应的编译工具,如 Linux 中 的C 语言编译器 gcc 。 因此,在安装操作系统的时候尽量勾选“开发工具”一项来安装基本的编译环境。

> 附带安装程序的软件包:这种软件包的扩展名不一,但仍以 TarBall格式的居多。

软件包中会提供用于安装的可执行程序或脚本文件,如 install.sh 、setup 等,有时 候会以“.bin”格式的单个安装文件形式出现。安装时只需运行安装文件就可以根据向导程序的提示完成安装操作。

开放源代码的自由软件绝大多数选择以 TarBall 的形式发布,而 RPM 软件包、 DEB 软 件包等则使用了二进制的文件格式,代码相对比较封闭。

使用 RPM  软件包管理工具

RPM 软件包是各种Linux发行版本中应用较广泛的软件包之一。RPM  软件包以其强大 的功能得到多数Linux发行版本的支持和广大 Linux使用者的拥护。

RPM 概述

RPM 软件包管理机制最早由Red Hat 公司提出,后来随着版本的升级逐渐融入更多的 优 秀 特 性 ,成 为 众 多 Linux 发行版中公认的软件包管理标准。

RPM 软件包管理器通过建立统一的文件数据库,对在 Linux 操作系统中安装、卸载、 升级的各种.rpm 软件包进行详细的记录,并能够自动分析软件包之间的依赖关系,保持各应用程序在一个协调、有序的整体环境中运行。

使用RPM  机制封装的软件包文件拥有约定俗成的命名格式, 一般使用“软件名-软件版 本 - 发 布 次 数 . 操 作 系 统 类 型 . 硬 件 架 构 类 型 .rpm”的 文 件 名 形 式 , 如 “bash-4.2.46-20.el7_2.x86_64.rpm”。其中硬件平台通常为“i386”或“i686”等,表示适用于 Intel 公司的处理器,“x86_64”表示适用于64位的系统,如果是“noarch”表示不区分硬件架构(支持不同硬件体系的处理器)。

CentOS 的 DVD 安装光盘携带的大部分软件包都在 Packages 目录中,通过该目录中 的文件可以熟悉 RPM 软件包的一般命名格式。例如,以下操作用于查看 DVD 光盘设备中 携带的 bash 和 fontconfig-devel 软件包(分别是 Shell解释器、字体配置和定制库)。 一般情 况 下 ,CentOS  启动后安装光盘会自动挂载到系统的/run/media/root/CentOS\7

使用 RPM  软件包管理命令——rpm

在 CentOS   系 统 中 ,rpm 命令是实现 RPM  软件包管理的主要工具。

1.rpm         命 令 的 格 式

使 用rpm 命令能够实现几乎所有对RPM  软件包的管理功能,执行“man  rpm”命令可以

获得关于 rpm 命令的详细帮助信息,具体操作如下:

从 rpm 命令的手册页信息中可以看出,rpm  命令具有非常强大的功能,结合不同的命

令选项及子选项主要可以实现以下三类功能。

>   查询、验证 RPM  软件包的相关信息。

>   安装、升级、卸载 RPM 软件包。

>   维护 RPM 数据库信息等综合管理操作。

下面将分别对上述 RPM 管理功能中的常见操作进行学习。

2. 查 询 RPM  软件包信息

使用 rpm 命令的查询功能可以查看某个软件包是否已经安装,软件包的用途以及软件包复制到系统中的文件等相关信息,以便更好地管理Linux 操作系统中的应用程序。

rpm 命令的查询功能主要通过“-q”选项实现,主要针对当前系统中已经安装的软件包; 通过“-qp ”选项可以针对尚未安装的 RPM  软件包文件进行查询。根据所需查询的具体项目不同,还可以为这两个选项指定相关的子选项。

(1)查询已安装的 RPM  软件包信息

不带子选项的“-q ”选项可用于查询已知名称的软件包是否已经安装,需要使用准确的软 件名作为参数(可以有多个)。结合不同的子选项使用时,可以实现更具体的查询。常用的几个子选项如下所述。

>   -qa: 显示当前系统中以 RPM  方式安装的所有软件列表。

>   -qi:   查看指定软件包的名称、版本、许可协议、用途描述等详细信息(--info )。

>   -ql: 显示指定的软件包在当前系统中安装的所有目录、文件列表(--list)。

>   -qf: 查看指定的文件或目录是由哪个软件包所安装的(- file)。

直接执行“rpm-qa ”命令将列出当前操作系统中以RPM  方式安装的所有软件包清单,每 行记录一个软件包的名称、版本等信息。结合管道操作和“wc - ”命令,可以统计出系统中已安装的 RPM 软件的个数。

当需要查询某个软件包是否已经安装时,可以直接使用软件包名称作为查询参数。

如果不知道准确的软件包名称,还可以对全部查询结果进行过滤,使用软件包的一部分 名称进行模糊查询,根据查询结果再进行判断。

对于系统中已经安装的各种软件程序,如果不知道其中某个软件的用途,同样可以通过 rpm  工具进行查询。

当需要查看某个软件包安装的目录和文件清单时,可以使用“ -ql”选项。

当需要知道系统中的某个文件是由哪一个软件包生成的时候,可以使用“ -gf” 选项。

注意:使用 rpm 命令只能查询通过RPM  方式安装的软件包信息,对通过其他途径 安装(如源码编译、手动复制等方式)到系统中的软件包,rpm   命令则无法获取相关信息 。

( 2 ) 查 询 RPM  软件包文件中的相关信息

使用“-qp ”选项时,必须以RPM  软件包文件的路径作为参数(可以有多个),而不是软件包名称。其相关的子选项与使用“-q”查询时类似,常用的两个查询选项如下所述。

 >  -qpi: 查看指定软件包的名称、版本、许可协议、用途描述等详细信息。

>   -qpl: 查看该软件包准备要安装的所有目标目录、文件列表。

3. 安装、升级、卸载 RPM  软件包

在日常系统管理工作中,安装、升级及卸载软件包是管理应用程序最基本的工作内容。使用 rpm命令实现这些操作时,基本的命令选项如下所述。

>  -i:   在当前系统中安装 ( Install ) 一个新的 RPM  软件包。

>   -e:   卸载指定名称的软件包。

>   -U: 检查并升级系统中的某个软件包,若该软件包原来并未安装,则等同于“-i”选项。

>   -F:   检查并更新系统中的某个软件包,若该软件包原来并未安装,则放弃安装。

>   -h:    在安装或升级软件包的过程中,以“#”号显示安装进度。

>   -v:   显示软件安装过程中的详细信息。

> --force:   强制安装某个软件包,当需要替换已安装的软件包及文件,或者安装一个比当前使用的软件版本更旧的软件时,可以使用此选项。

>   --nodeps:    在安装或升级、卸载一个软件包时,不检查与其他软件包的依赖关系。

(1)安装、升级软件包

使用 rpm命令安装软件包时, 一般需要指定完整的软件包文件名作为参数(可以有多 个);而卸载软件包时,只需要指定软件名称即可。若要一次安装多个 RPM  软件包,可以 使用通配符“”,这种方式在安装存在相互依赖关系的多个软件包时特别有用,系统将会自动检查依赖性并决定安装顺序,而无须管理员去判断应该先装哪一个包。

在安装一个新的软件包时,通常使用“-ivh”的组合选项,这样便于了解软件安装的过程  信息,及时跟踪安装进度。若使用新版本的软件包替换旧的版本,则只需将“-i”换成“-U”即可。

使用lynx 命令程序可以在文本模式中访问Web 站点(不能显示图片,若当前终端不支持中文,则中文也无法正常显示),也可以直接查看本机中的“.html”格式的各种软件文档。

(2)卸载软件包

卸载一个软件包时,主要使用“-e ”选项。当需要安装、卸载一个与其他程序存在依赖关系的软件包时,系统将提示存在依赖关系 而放弃执行。这时可以结合“-nodeps   ”选项忽略依赖关系,而强行安装或卸载指定的软件包。 忽略依赖关系可能会导致软件功能异常或失效,因此只在学习或者调试程序时使用,生产环境中应避免使用。

  从源代码编译安装程序

在 Linux操作系统中搭建一些大型服务时,考虑兼容性与功能的扩展,通常会选择源代 码安装软件,其实最早的 Linux 操作系统整体上都是编译安装而成的

编译安装的基本过程

获得所需安装的软件源代码以后,安装的基本过程包括解包、配置、编译及安装这几个 通用步骤,如图3.1所示,大多数开源软件的安装都遵循这个过程。当然,这四个步骤并不是一成不变的,实际安装时应参考软件自带的相关文档(如 INSTALL 、README)。

 源代码编译安装程序的基本过程

1. 解 包

开源软件的源代码包一般为 TarBall 形式,扩展名为“.tar.gz” 或“.tar.bz2”,  都可以使用 tar   命令进行解压释放。对于只有“.gz”扩展名的源代码包,表示只经过压缩而并未使用 tar 归档, 这样的文件只需使用gzip 进行解压缩即可。在 Linux 操作系统中,通常将各种软件的源代  码目录保存到“/usr/src/”目录中,以便于集中管理。释放后的软件包目录一般包括软件名和版本信息(如 httpd-2.4.25) 。

2. 配置

在编译应用程序之前,需要进入源代码目录,通过目录下的脚本检查安装环境,并且对软件的安装目录、功能选择等参数进行预先配置。

环境检查与配置工作通常由源代码目录中的 configure   脚本文件来完成,可用的各种配 置参数可以通过在源代码目录中执行“/configure    --help”命令进行查看。对不同的软件程序 来说,其配置参数存在区别,但是有一个“--prefix”形式的参数却是大多数开源软件通用的, 该配置参数用于指定软件包安装的目标文件夹。如果没有指定任何配置参数;configure” 脚本将采用软件默认的值进行配置。

在 Linux操作系统中通过源代码方式安装软件时,也可以将所有程序文件安装到同一个 文件夹(如./configure --prefix=/usr/local/Apache) 中,这样当需要卸载软件时,只要直接 将该文件夹删除即可,非常方便(某些软件也可以在源代码目录中执行“make uninstall”命

令完成卸载)。

如果软件的功能比较复杂,配置过程会需要一定的时间,期间会在屏幕中显示大量的输 出信息,这些信息可以帮助管理员了解程序配置的过程。配置结果将保存到源代码目录的 Makefile 文件中。如果配置过程出现错误,如包含“error” 、“failed”或“not found”等关键字, 通常是缺少相关的依赖软件包所致,此时只要根据提示安装对应的软件即可。

3. 编 译

编译的过程主要是根据 Makefile 文件内的配置信息(若上一步的配置操作失败,将无 法进行编译),将源代码文件进行编译生成二进制的程序模块、动态链接库、可执行文件等。 配置完成后,只要在源代码目录中执行“make”命令即可执行编译操作。编译的过程比配置过程需要更长的时间,期间同样会显示大量的执行过程信息。

4. 安装

编译完成以后,就可以执行如下的“make install”命令将软件的执行程序、配置文件、帮 助文档等相关文件复制到 Linux操作系统中了,即应用程序的最后“安装”过程。安装过程需要的时间相对要短一些,期间也会显示安装的过程信息。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值