1.Linux应用程序管理、
(1)Linux 命令与应用程序的关系
在 Linux 操作系统中,一直以来命令和应用程序并没有特别明确的区别,从长期使用习惯来看,可以通过以下描述来对两者进行区别。
应用程序命令的执行文件大多比较小,通常放置在/bin 和/sbin 目录中。对于内部命令,常集成在 Bash 程序内,而不是独立地执行文件;命令文件一般在安装操作系统时一起安装,用于辅助操作系统本身的管理;命令行大多适用于“命令字选项 参数”形式的一般格式;命令只在字符操作界面中运行。
应用程序的执行文件通常放在/usr/bin、/usr/sbin 和usr/local/bin、/usr/local/sbin等目录中;应用程序一般需要在操作系统之外另行安装,提供相对独立于操作系统的功能,有时候等同于“软件”的概念;应用程序一般没有固定的执行格式,运行方式由程序开发者自行定义:应用程序可能会用到图形界面,形式多样:有些应用程序提供的执行文件,能够使用像 Linux 命令一样的运行格式,所以也经常被称为程序命令。
本章中讲解的应用程序被视为将软件包安装到系统中后产生的各种文档,其中包括可执行文件、配置文件、用户手册等内容,这些文档被组织为一个有机的整体,为用户提供特定的功能。因此,对于“安装软件包”与“安装应用程序”这两种说法,并不做严格的区分。
(2)Linux应用程序的组合
(3)软件包的封装类型
RPM 软件包:这种软件包文件的扩展名为“.rpm”,只能在使用 RPM(RPM PackageManager,RPM 软件包管理器)机制的 Linux 操作系统中安装,如 RHEL、Fedora、CentOS等。RPM 软件包一般针对特定版本的操作系统量身定制,因此依赖性较强。安装 RPM 软件包需要使用操作系统中的rpm 命令。DEB 软件包:这种软件包文件的扩展名为“.deb”,只能在使用 DPKG(DebianPackage,Debian 包管理器)机制的 Linux操作系统中进行安装,如 Debian、Ubuntu等。安装 DEB 软件包需要使用操作系统中的 dpkg 命令。源代码软件包:这种软件包是程序员开发完成的原始代码,一般被制作成.tar.gz或“.tar.bz2”等格式的压缩包文件,因多数使用 tar 命令打包而成,所以经常被称为“TarBal”。安装源代码软件包需要使用相应的编译工具,如 Linux 中的C语言编译器 gcc。因此,在安装操作系统的时候尽量勾选“开发工具”一项来安装基本的编译环境。
2.使用RPM软件包管理工具
(1)RPM概述
RPM 软件包管理机制最早由 Red Hat 公司提出,后来随着版本的升级逐渐融入更多的优秀特性,成为众多 Linux发行版中公认的软件包管理标准。在其官方站点http://www.rpm.org 中,可以了解到关于 RPM 包管理机制的详细资料。
RPM 软件包管理器通过建立统一的文件数据库,对在Linux 操作系统中安装、卸载、升级的各种.rpm 软件包进行详细的记录,并能够自动分析软件包之间的依赖关系,保持各应用程序在一个协调、有序的整体环境中运行。
使用 RPM 机制封装的软件包文件拥有约定俗成的命名格式,一般使用“软件名-软件版本-发布次数.操作系统类型.硬件架构类型.rpm”的文件名形式,如'bash-4.2.46-20.el7 2.x86 64.rpm”。其中硬件平台通常为“i386"或“i686”等,表示适用于Intel 公司的处理器,“x86 64”表示适用于 64 位的系统,如果是“noarch"表示不区分硬件架构(支持不同硬件体系的处理器)。
(2)使用RPM管理命令
rpm 命令具有非常强大的功能,结合不同的命令选项及子选项主要可以实现以下三类功能。
查询、验证 RPM 软件包的相关信息。
安装、升级、卸载 RPM 软件包。
维护 RPM 数据库信息等综合管理操作。
下面将分别对上述 RPM 管理功能中的常见操作进行学习。
(3)查询RPM软件包信息
使用 rpm 命令的查询功能可以查看某个软件包是否已经安装,软件包的用途以及软件包复制到系统中的文件等相关信息,以便更好地管理Linux 操作系统中的应用程序。
rpm 命令的查询功能主要通过“-g"选项实现,主要针对当前系统中已经安装的软件包;通过“-qp”选项可以针对尚未安装的 RPM 软件包文件进行查询。根据所需查询的具体项目不同,还可以为这两个选项指定相关的子选项。
(1)查询已安装的 RPM 软件包信息
不带子选项的“-g"选项可用于查询己知名称的软件包是否已经安装,需要使用准确的软件名作为参数(可以有多个)。结合不同的子选项使用时,可以实现更具体的查询。常用的几个子选项如下所述。
-qa:显示当前系统中以RPM 方式安装的所有软件列表。
-qi:查看指定软件包的名称、版本、许可协议、用途描述等详细信息(--info)。
-q:显示指定的软件包在当前系统中安装的所有目录、文件列表(--list)。
-qf:查看指定的文件或目录是由哪个软件包所安装的(--file)。
直接执行“rpm -qa”命令将列出当前操作系统中以 RPM 方式安装的所有软件包清单,每行记录一个软件包的名称、版本等信息。结合管道操作和"wc-""命令,可以统计出系统中已安装的 RPM 软件的个数。
(4)日常系统管理
在日常系统管理工作中,安装、升级及卸载软件包是管理应用程序最基本的工作内容使用rpm 命令实现这些操作时,基本的命令选项如下所述。
-i:在当前系统中安装(Instal)一个新的 RPM 软件包。
-e:卸载指定名称的软件包。
-U:检查并升级系统中的某个软件包,若该软件包原来并未安装,则等同于“-i”选项。
-F:检查并更新系统中的某个软件包,若该软件包原来并未安装,则放弃安装。
-h:在安装或升级软件包的过程中,以“#”号显示安装进度。
-V:显示软件安装过程中的详细信息。
--force:强制安装某个软件包,当需要替换已安装的软件包及文件,或者安装一个比当前使用的软件版本更旧的软件时,可以使用此选项。
--nodeps:在安装或升级、卸载一个软件包时,不检查与其他软件包的依赖关系。