曝光:Linux企业运维实战
上QQ阅读APP看书,第一时间看更新

6.1 RPM软件包管理

Linux软件包从内容上可分为二进制包(binary code)和源码包(source code),不同类别的软件包使用的管理工具也各不相同。源码包是没有经过编译的包,需要经过GCC、C++编译器环境编译才能运行,二进制包无须编译,可以直接安装使用。

通常而言,可以通过后缀区别源码包和二进制包,例如以.tar.gz、.zip、.rar结尾的包称之为源码包,以.rpm结尾的软件包称之为二进制包。真正区分是否为源码包还是二进制包还得基于软件包里面的文件来判断,例如包含.h、.c、.cpp、.cc等结尾的源码文件,称之为源码包,而代码里面存在bin可执行文件,称之为二进制包。

CentOS操作系统中有一款默认软件管理的工具,即红帽包管理工具(red hat package manager,RPM)。

使用RPM工具可以对软件包实现快速安装、管理及维护。RPM管理工具适用的操作系统包括CentOS、Red Hat、Fedora、SUSE等,RPM工具常用于管理以.rpm后缀结尾的软件包。

RPM包命名格式如下:

如下软件包格式:

RPM包格式解析如下:

□name:软件名称,例如yasm、perl-pod-Plainer。

□version:版本号,1.2.0通用格式为“主版本号.次版本号.修正号”,其中4表示发布版本号,意味着该RPM包是第几次编译生成的。

□arch:适用的硬件平台,RPM支持的平台有i386、i586、i686、x86_64、sparc、alpha等。

□.rpm:后缀包表示编译好的二进制包,可用rpm命令直接安装。

□.src.rpm:源代码包,源码编译生成.rpm格式的RPM包方可使用。

□el∗:软件包发行版本,el6表示该软件包适用于RHEL 6.X/CentOS 6.X。

□devel:开发包。

□noarch:软件包可以在任何平台上安装。

RPM工具命令详解如下:

□-a,--all:查询所有已安装软件包。

□-q,--query:表示询问用户,输出信息。

□-l,--list:打印软件包的列表。

□-f,--file:file查询包含file的软件包。

□-i,--info:显示软件包信息,包括名称,版本、描述。

□-v,--verbose:打印输出详细信息。

□-U,--upgrade:升级RPM软件包。

□-h,--hash:软件安装,可以打印安装进度条。

□--last:列出软件包时,以安装时间排序,最新的在上面。

□-e,--erase:卸载RPM软件包。

□--force:表示强制,强制安装或者卸载。

□--nodeps:RPM包不依赖。

□-l,--list:列出软件包中的文件。

□--provides:列出软件包提供的特性。

□-R,--requires:列出软件包依赖的其他软件包。

□--scripts:列出软件包自定义的小程序。

RPM企业案例演示:

□rpm-q httpd:检查httpd包是否安装。

□rpm-ql httpd:查看软件安装的路径。

□rpm-qi httpd:查看软件安装的版本信息。

□rpm-e httpd:卸载httpd软件。

□rpm-e--nodeps httpd:强制卸载httpd。

□rpm-qa|grep httpd:检查httpd相关的软件是否安装。

□rpm-ivh httpd-2.4.10-el7.x86_64.rpm:安装httpd软件。

□rpm-Uvh httpd-2.4.10-el7.x86_64.rpm:升级httpd软件。

□rpm-ivh--nodeps httpd-2.4.10-el7.x86_64.rpm:不依赖其他软件包。