程序包管理:rpm/yum/编译

       在红帽软件包管理器(RPM)公布之前要想在Linux系统中安装软件只能采取“源码包”的方式安装,早期在Linux系统中安装程序是一件非常困难,耗费耐心的事情,因为大多数的服务程序仅仅提供编译源码,需要运维人员自行编译代码并解决许多的依赖关系,源码安装需要运维人员有很多的知识、高超的技能、甚至很好的耐心才能安装好一个程序,而且在安装、升级、卸载时还要考虑到其他程序、库的依赖关系,所以管理员在校验、安装、卸载、查询、升级等管理软件操作时难度非常大。

    而RPM机制则为解决这些问题而设计的,

       RPM为“Redhat Package Manager”,因其卓越的优势很快被公众认可,目前使用范围也已不局限在红帽系统中了。RPM会建立统一的数据库文件,详细的记录软件信息并能够自动分析依赖关系,颇有一些“软件控制面板”的感觉。


红帽软件包管理器(rpm):


查询软件的描述信息:rpm -qpi    filename.rpm

程序包管理:rpm/yum/编译_数据库

列出软件的文件信息:rpm -qpl    filename.rpm

程序包管理:rpm/yum/编译_控制面板_02    

安装软件:rpm -ivh    filename.rpm

程序包管理:rpm/yum/编译_控制面板_03

升级软件:rpm  -Uvh filename.rpm

程序包管理:rpm/yum/编译_数据库_04

卸载软件:rpm   -e      filename.rpm

查询文件属于那个RPM:rpm -qf  filename程序包管理:rpm/yum/编译_文件_05

虽然RPM能够帮助用户查询软件相关的依赖关系,但问题还是要自己解决,有些大型软件需要数十个依赖包也是不小的负担。

Yum软件仓库:

Yum仓库则是为进一步简化RPM管理软件难度而设计的,Yum能够根据用户的要求分析出所需软件包及其相关依赖关系,自动从服务器下载软件包并安装到系统,听起来就已经很爽了


程序包管理:rpm/yum/编译_控制面板_06

yum软件仓库的使用拓扑图


用户能够根据需求来指定Yum仓库与是否校验软件包,而这些只需几条关键词即可完成,现在来学习下配置的方法.

所有Yum仓库的配置文件均需以.repo结尾并存放在/etc/yum.repos.d/目录中的。


[rhel-media]: yum源的名称,可自定义。

baseurl=file:///media/cdrom :提供方式包括FTP(ftp://..)、HTTP(http://..)、本地(file:///..)

enabled=1 : 设置此源是否可用,1为可用,0为禁用。

gpgcheck=1 : 设置此源是否校验文件,1为校验,0为不校验。

gpgkey=file:///media/cdrom/RPM-GPG-KEY-redhat-release :若为校验请指定公钥文件地址。

程序包管理:rpm/yum/编译_控制面板_07

命令作用

yum repolist all   列出所有仓库。

程序包管理:rpm/yum/编译_文件_08

yum list all  列出仓库中所有软件包

程序包管理:rpm/yum/编译_控制面板_09

yum install 软件包名称安装软件包

程序包管理:rpm/yum/编译_文件_10程序包管理:rpm/yum/编译_文件_11

yum update 软件包名称  升级软件包

程序包管理:rpm/yum/编译_控制面板_12yum remove 软件包  移除软件包

程序包管理:rpm/yum/编译_文件_13

yum clean all    清除所有仓库缓存

程序包管理:rpm/yum/编译_文件_14

yum check-update   检查可更新的软件包

程序包管理:rpm/yum/编译_控制面板_15

yum grouplist 查看系统中已经安装的软件包组

程序包管理:rpm/yum/编译_控制面板_16

yum groupinstall 软件包组   安装指定的软件包组

程序包管理:rpm/yum/编译_数据库_17yum groupremove软件包组     移除指定的软件包组

程序包管理:rpm/yum/编译_文件_18yum groupinfo 软件包组查询指定的软件包组信息

程序包管理:rpm/yum/编译_数据库_19

Yum仓库中的RPM软件包可以是由红帽官方发布的,也可以是第三方组织发布的,当然用户也可以编写的.

将源码编译成rpm包的详细步骤:

# tar -xvzf glusterfs-2.0.0.tar.gz

# cp glusterfs-2.0.0.tar.gz /usr/src/redhat/SOURCES/

# rpmbuild -ba glusterfs-2.0.0/glusterfs.spec

# cp /usr/src/redhat/RPMS/i386/glusterfs* .

# rm glusterfs-debuginfo-2.0.0-1.i386.rpm

# rpm -ivh glusterfs-*.rpm