Linux中RPM 和 YUM 包管理详解

一、rpm管理

1,rpm包命名规则

Linux中RPM 和 YUM 包管理详解

2,rpm包查找地址:

http://mirrors.souhu.com

http://rpm.pboe.net

http://rpmfind.net  等等

3,rpm包安装,我们就以安装which包为例:

Linux中RPM 和 YUM 包管理详解

很简单,随便找个包操作一下更加深印象哦

Linux中RPM 和 YUM 包管理详解

当然这个命令在安装系统的时候就已经安装完毕了,所以这里显示已安装

安装命令还有很多选项,比如-v,-vv来查看详细信息,-h来显示安装进度,我们不做详

解,具体请参照man手册

4,那么如何查看我已经安装了什么包呢,

我们使用rpm -qa即可查看当前已安装的所有包,如果想查看某个包是否安装,那么

Linux中RPM 和 YUM 包管理详解

可以配合grep命令单独查询。

5,卸载,

rpm –e package_name ,来卸载已安装的包,由于包与包之间有很复杂的依赖关系,我

我们卸载的时候可以参照下文的yum命令。

6,rpm数据库,

目录是在/var/lib/rpm

rpm --initdb 新建数据库

rpm –rebuilddb 重建数据库

二、yum命令详解

yum对于rpm的优势在于,yum可以自动解析包的依赖关系并且自动检索安装依赖包

1,查看yum信息,

yum list [all | installed | available | updates] 查看相关程序包

yum repolist 显示所有可用仓库(后面会解释仓库)

yum info package_name,查看已安装包的详细信息

Linux中RPM 和 YUM 包管理详解

Linux中RPM 和 YUM 包管理详解

2,使用yum来安装包

yum install package_name。。。还可以使用-y选项,自动回答yes,免交互

yum reinstall package_name。。。。重新安装

3,yum软件包升级

yum check-update 检查有哪些包可升级

yum update package_name。。。升级到最新版本,

yum update-to package_name version 升级到制定版本,随便找个包试一下

Linux中RPM 和 YUM 包管理详解

4,***已安装包,同时会卸载掉依赖于此包的其它包

yum remove package_name 。。。这样就不会苦恼于rpm依赖关系混乱的情况了。

三、yum仓库的创建,

因为我觉得创建仓库比较复杂,所以单独拿出来说明一下

1,yum仓库的配置文件,及文件配置

/etc/yum.repos.d/CentOS-Base.repo

我们可以在repos.d这个目录下创建一个.repo的文件,用来编辑新的yum仓库

[base] 仓库的名称

name= \\仓库信息描述,随便写一下,如base-/mnt/cdrom/-author等,随便写

enabled=  \\这个等于号后面跟0或者1,0表示不启用仓库,1表示启用

baseurl=  \\后面跟着的是yum仓库的文件路径,yum命令从这个路径去检索包

gpgcheck=  \\用0和1表示是否启用gpg检查,监测包是否被修改过,来源是否可靠

gpgkey=  \\如果启用gpg检查,需要在这里指定密钥的路径

2,挂载及文件拷贝

首先我们需要找到一个rpm包的文件,比如iso镜像的Packages文件里面

如果用虚拟机,可以将该文件挂载并且拷贝到系统里随便哪个文件里面

Linux中RPM 和 YUM 包管理详解

在虚拟机的右下角有个光盘模样的图标,点设置之后会出现下面的对话框

Linux中RPM 和 YUM 包管理详解

选择使用ISO映像文件后,并且制定ISO包的位置,再回答图1,点光盘,选连接

这时候通常连接到/dev/cdrom中,我们需要挂载之后才能看到文件,

Linux中RPM 和 YUM 包管理详解

我们所需要的包都在Packages里面了,但是为了知道库依赖关系需要把cdrom目录都拷贝出来,

使用 cp –r /mnt/cdrom/ /Target/directory,

3,yum仓库配置

Linux中RPM 和 YUM 包管理详解

首先创建个仓库配置文件,并且编辑

Linux中RPM 和 YUM 包管理详解

在CentOS6.x中不需要createrepo来创建,编辑完保存我们就可以yum repolist来查看了

当然现在还不可以直接使用,我们还需要把默认仓库的属性修改一下,

否则找包的时候不会检索我们的仓库

具体路径是在/etc/yum.repo.d/CentOS_Base.repo

Linux中RPM 和 YUM 包管理详解

Linux中RPM 和 YUM 包管理详解

保存退出后先执行yum clean all 命令

如果没有意外,现在就可以使用我们自建的yum仓库了