在安装gtk+编译环境的过程中,你会发现,RPM软件包之间的依赖关系非常复杂。在实际管理过程中,这种依赖关系可能会更加复杂。因此非常有必要寻找一种自动化安装工具,让安装工具自己处理这些关系复杂的依赖关系。幸运的是Red Hat推出了一个名为Yellowdog Updater Modified的包管理器(通常简称为yum)。
yum包管理器可以自行计算要安装软件包的依赖性,并自动安装软件包需要的软件包和库文件。
使用yum包管理器时,需要为其设置yum使用的软件源(软件源也称为软件仓库,其中包含了若干rpm安装包和yum工作的索引文件)。对于使用Fedora Core Linux发行版的用户而言,可以直接使用操作系统自带的yum源。使用Red Hat Enterprise Linux发行版的用户,如果未将系统注册到红帽网络,将无法使用官方的源。
yum可以使用互联网或本地保存的安装包作为源。当用户指定安装某个软件时,yum将会查找源,并计算软件包的依赖性,然后安装软件包。yum安装软件包的整个过程都不需要用户参与,大大降低了安装软件包的难度。
1、yum的配置文件
yum使用的配置文件为/etc/yum.conf,这个文件是yum工作的核心配置文件。查看其配置文件内容如下:
[root@localhost Server]# cat /etc/yum.conf [main] cachedir=/var/cache/yum keepcache=0 debuglevel=2 logfile=/var/log/yum.log pkgpolicy=newest distroverpkg=redhat-release tolerant=1 exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 metadata_expire=1800 # PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d
这个配置文件的内容十分简洁,每一行就是一个配置项。其中配置了yum的缓存目录、错误级别、日志文件等。通常不需要对这个文件中的内容做特殊的设置。
除了yum工作的配置文件外,还有源配置文件。这些文件通常为于目录/etc/yum.repos.d中,默认情况下该目录中只有一个配置文件rhel-debuginfo.repo。
查看yum源配置文件的内容:
[root@localhost yum.repos.d]# cat rhel-debuginfo.repo [rhel-debuginfo] name=Red Hat Enterprise Linux $releasever - $basearch - Debug baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/$releasever/en/os/$basearch/Debuginfo/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
这个配置文件的内容比较简单,每行为一个配置项,并使用等号“=”为每个配置项赋值。这些配置项及其含义如下:
[name]:软件源的名称。
name:软件源的描述信息。
baseurl:软件源的位置。默认的软件源为Red Hat官方的软件源。
enabled:是否需要启用这个软件源,1为启用,0为禁用。
gpgcheck:是否需要验证GPG签名。GPG签名用于验证软件包是否来自Red Hat官方。
gpgkey:GPG签名的验证密钥信息存放位置。
2、使用DVD光盘配置软件源
RHL5.3的安装光盘分为DVD和CD两种,DVD安装光盘将所有需要的内容和安装文件都集中放置在一张光盘上,而CD安装光盘则分别存放在4张光盘内。
由于DVD光盘已经将所有需要的文件集中放置,因此可以直接将DVD光盘挂载到系统中,使用光盘建立yum源。
(1)在配置yum源之前,应该先备份其源配置文件:
#使用cp命令备份yum源配置文件
# cp /etc/yum.repos.d/rhel-debuginfo.repo /etc/yum.repos.d/rhel-debuginfo.repo.bak
(2)挂载光驱到目录/mnt,以便于指定光驱目录为yum源:
[root@localhost ~]# mount /dev/cdrom /mnt mount: block device /dev/cdrom is write-protected, mounting read-only
(3)挂载完成后修改yum源配置文件,将文件rhel-debuginfo.repo的内容修改如下:
[root@localhost ~]# cat /etc/yum.repos.d/rhel-debuginfo.repo [rhel-debuginfo] name=Red Hat Enterprise Linux $releasever - $basearch - Debug baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/$releasever/en/os/$basearch/Debuginfo/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release #以上内容无变化 #以下为新写入内容 [cdrom] name=Red Hat DVD baseurl=file:///mnt/Server/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
新建的软件源中,软件源的目录为/media/cdrom/Server。此处的“file://”与前面的“ftp://”类似,表示使用的协议,官方的源中使用的“ftp://”表示使用FTP协议。此处的“file://”表示使用本地文件系统,而其后的/media/cdrom/Server则表示源目录在本地文件系统上的具体位置。
配置好以上内容之后,使用DVD安装光盘建立的yum源就可以使用了。
3、使用CD安装光盘配置软件源
使用CD安装光盘时,由于安装文件分布在不同的光盘上,因此建立yum源之前,需要将4张安装光盘的安装文件都复制到硬盘的同一个目录中,然后在修改yum源配置文件。
(1)在本例中,先将所有光盘中的安装文件(即光盘上所有的“.rpm”结尾的文件)都复制到目录/mnt/cd_yum/rpm中。
(2)yum工作时依赖于几个索引文件,这几个索引文件被放置在光盘上的安装文件目录中的repodata子目录中。
[root@localhost ~]# ls /media/cdrom/Server/repodata/ comps-rhel5-server-core.xml other.xml.gz repomd.xml filelists.xml.gz primary.xml.gz TRANS.TBL
上面这个示例命令假定光盘已经挂载到目录/media/cdrom。命令输出的几个文件filelists.xml.gz、other.xml.gz和repomd.xml,都是yum工作时必需的文件。如果在复制时没有复制到这几个文件,或者这几个文件的内容不准确,都会影响yum的正常使用。
用户复制安装文件时,可以一并复制这个目录,也可以使用createrepo命令重新创建这个目录中的文件。
(3)重新创建索引文件需要使用命令createrepo,默认情况下,系统并没有安装createrepo命令的软件包。可以使用以下名安装:
[root@localhost Server]# rpm -ivh createrepo-0.4.4-2.fc6.noarch.rpm warning: createrepo-0.4.4-2.fc6.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 Preparing... ########################################### [100%] 1:createrepo ########################################### [100%]
安装完成之后,就可以使用该命令建立索引文件了:
[root@localhost ~]# createrepo /mnt/cd_yum/rpm/
由于命令会搜索、分析所有软件包,并建立索引文件,因此这个命令会耗费大量时间。命令完成之后,将在目录/mnt/cd_yum/rpm中建立一个新的子目录repodata,并将新生成的索引文件放置在其中。
(4)完成以上步骤后,就可以修改yum源配置文件了。具体可以参考使用DVD建立yun源步骤中的配置文件,修改完成后就可以使用yum安装软件包了。
注意:使用安装光盘建立yum源,仅仅是为了安装软件包时方便,不能为系统更新软件,因此建议使用官方的yum源,以便于获取更多更新的软件包。
【命令格式】
yum search package_name
【命令格式】
yum [-y] install soft_package_name
使用yum命令安装软件包时,可以使用选项y,该选项将会自动允许yum的所有操作而不提示用户。
【命令格式】
yum [-y] remove soft_package_name
与安装软件包类似,选项y将授权yum自动操作。
注意:不建议使用yum工具自动卸载与系统相关的软件包。
软件包组是发行版自定义的软件包集合,软件包组会显示在操作系统安装过程中的软件定制界面中。
【命令格式】
yum [grouplist | goupinstall | groupremove] group_name
grouplist:列出所有的软件包组。
goupinstall:安装指定的软件包组。
groupremove:卸载指定的软件包组。