学习到第11天了,系统相关的软件配置使用rpm包或源码配置都会遇到各种依赖问题,YUM就是Red Hat出的软件包管理工具,能有效的自动解决软件包的依赖问题。
YUM(Yellowdog Update Modifier):把各种程序依赖关系都集成收集,并在安装软件时自动解决的工具。这个工具是使用C/S架构的,从而分为了服务器端(yum仓库)和客户端。
YUM仓库相关。
yum仓库,主要由数据和元数据组成。数据就是各种各样的软件包,而元数据就是包名、版本信息、各包所包含的文件列表、依赖关系、包分组信息等。
yum仓库分可为几种类型:
base库:基本为系统发行版提供的软件库
update库:更新软件库
extra库:额外软件包库
epel库:Extra Packages for Enterprise,社区全力打造的免费开源发行软件包版本库, 系统包含大概有1万多个软件包。
yum仓库提供软件包的位置信息,而在Linux系统中,这样的也就表现为常见的http服务器、ftp服务器及本地文件系统目录挂载光盘三种常见的方法。
下面就实验一下创建http类型和本地的Yum仓库吧。
先说http类型的,分为以下步骤:
1、先安装上createrepo哈,要不没法制作yum仓库。
2、我们再在提供仓库的机器上安装上apache并开启,使用默认的配置以/var/www/html为访问目录吧。然后我在这个目录下新建了一个rpms的目录,并在rpms下面放了164个包(好少,但是只是为了学习哈)。
3、在/var/www/html目录下,使用createrepo命令,等待一会,yum仓库的元数据就生成好了。嗯,这个元数据,在CentOS 5下是使用xml来组织的,而在CentOS 6的版本下使用splite这种微型数据库了哈。
4、接下来,我们就配置客户端的yum配置文件了哈,如下图:
嗯,第一个图是先把CentOS默认安装的yum源去掉哈。
第二图是这个http类型的Yum源的配置文件。下面说一下相应的字段的作用和配置:
-
- repositoryid (中括号那行): 用于指定一个仓库
- name: 用于指定易读的仓库名称
- baseurl : 用于指定本仓库的URL,可以是如下的几种类型:
- http — 用于指定远程 HTTP 协议的源
- ftp — 用于指定远程 FTP 协议的源
- file — 用于本地镜像或 NFS 挂装文件系统
- mirrorlist : 用于指定仓库的镜像站点
- enabled : 用于指定是否使用本仓库,默认值为1,即可用
- gpgcheck : 用于指定是否检查软件包的 GPG 签名
- gpgkey : 用于指定GPG签名文件的URL,记住同样是URL哈。
配置完了,使用yum repolist这条命令可以查看可以使用的yum源哈。如图:
看样子是成功了哈,下面接着再接再励配置一下本地的yum源,因为本地yum源一般都是挂载光盘或ISO镜像(等同于光盘)的哈,所以也就直接以这个为目标了。
一般来说,光盘或ISO镜像上,都是生成好了相应的元数据的,也就少了createrepo这一步了哈。直接配置Yum的本地源。
大家看到了,和http类型不同的地方是baseurl那儿了吧。直接以repodate目录上一个目录为准哦。我的ISO是挂载到/mnt目录下的,不太标准哈,大家不要学。接着再看看yum repolist:
哈哈,多了标识为CentOS6-Localtest的源了,有6367个包。
YUM工具的常见使用命令。
1、列出所有可用的repo
yum repolist {enabled|disabled|all}
2、列出所有可安装的软件包:
yum list {all | installed | available}
yum list KEYWORD*
3、包的描述信息
yum info package_name
4、列出所有的包组信息
yum grouplist
5、显示包组的信息:
yum groupinfo "GROUP NAME"
下面四个是常用的包组哈:
CentOS6 跟开发相关的包组:
Development Tools
Server Platform Development
Desktop Platform Development
6、清理缓存
yum clean {all|packages|metadata|expire-cache|rpmdb|plugins}
7、安装程序包
yum install package_name
重新安装:yum reinstall package_name
8、升级程序包
yum check-update命令可检查是否有可用的升级包
yum update package_name
9、卸载
yum remove|erase package_name
10、查询某文件是由哪个包安装生成的
yum whatprovides|provides /path/to/somefile
11、安装包组
yum groupinstall "GROUP NAME"
12、卸载包组
yum groupremove "GROUP NAME"
语言不好,我会改进的,晚安╰(*′︶`*)╯