RPM包的依赖性一直是令人头痛问题。如果直接用rpm命令安装一个包,可能需要递归安装许多该包依赖的其他包。这个过程需要手工完成,工作量无疑是相当大的。用yum命令可以自动分析包之间的依赖关系,整个安装过程也是自动完成的,但是默认情况下yum会从各镜像网站上下载软件包然后再安装。事实上,Center OS的DVD光盘镜像文件中已经包含了多数常用的软件包,所以如果能够利用yum命令自动分析光盘镜像中的软件包之间的依赖关系,进而安装这些软件包,无疑能够节省很多网络带宽和安装软件的时间。
最近从网上下载了CentOS-6.0-i386-minimal.iso镜像文件,并且在vmware中安装了一个命令行界面的Center OS 6.0基本系统。但是,系统装好后发现基本的编译系统(gcc, make, gdb等)并没有安装,所以又下载了完整的光盘镜像文件CentOS-6.0-i386-bin-DVD.iso。启动系统并挂载光盘镜像后,就需要解决这些软件包的安装问题。受到《利用安装光盘创建本地 yum 源补装 RPM 软件包》一文的启发,顺利地从光盘镜像中对这些软件包做了本地安装。
yum在默认情况下会将镜像网站作为软件包的安装源,如果能够将安装源重定向到本地文件系统(硬盘、光盘等),那么本地安装就能够进行。沿着这个思路,以gcc的安装过程为例,说明本地安装的过程。
1. 将安装源定位到本地文件系统。
-
[root@xparmenides ~]# cd /etc/yum.repos.d/
-
-
[root@xparmenides yum.repos.d]# ls
-
-
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo
yum的安装源都在/etc/yum.repos.d/目录中的各配置文件中定义的。其中有一个CentOS-Media.repo文件,用来定义本地安装源。
-
[root@xparmenides yum.repos.d]# cat CentOS-Media.repo
-
-
# CentOS-Media.repo
-
-
#
-
-
# This repo is used to mount the default locations for a CDROM / DVD on
-
-
# CentOS-6. You can use this repo and yum to install items directly off the
-
-
# DVD ISO that we release.
-
-
#
-
-
# To use this repo, put in your DVD and use it with the other repos too:
-
-
# yum --enablerepo=c6-media [command]
-
-
#
-
-
# or for ONLY the media repo, do this:
-
-
#
-
-
# yum --disablerepo=\* --enablerepo=c6-media [command]
-
-
-
-
[c6-media]
-
-
name=CentOS-$releasever - Media
-
-
baseurl=file:///media/CentOS/
-
-
file:///media/cdrom/
-
-
file:///media/cdrecorder/
-
-
gpgcheck=1
-
-
enabled=0
-
-
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
该文件定义了一个称为c6-media的安装源,这个安装源来自/media/cdrom和/media/cdrecorder。所以下一步就要将光盘镜像文件挂载到这两个目录之一。
2. 挂载DVD光盘
首先,在vmware中将光盘镜像设置为虚拟CDROM。然后,执行下面命令进行挂载并进入软件包所在目录。
-
[root@xparmenides yum.repos.d]# mount -t iso9660 /dev/cdrom /media/cdrom
-
-
mount: block device /dev/sr0 is write-protected, mounting read-only
-
-
[root@xparmenides yum.repos.d]# cd /media/cdrom/Packages/
其中,/media/cdrom/Packages目录中存放了所有的rpm软件包。下面就要安装其中的gcc-4.4.4-13.el6.i686.rpm。
3.安装gcc软件包
通过/etc/yum.repos.d/CentOS-Media.repo不难看出,这个本地安装源默认情况下是禁用的。但是,文件开头的注释中却详细说明了如何打开这个安装源,同时禁用镜像网站上的安装源(最好把镜像网站禁用,因为光盘中的软件包应该是自足的,没有必要浪费网络带宽)。所以,执行下面命令就可以正确安装gcc了。
-
yum --disablerepo=\* --enablerepo=c6-media install gcc
其他的原件包可以类似安装。对于其他RHEL和Fedroa我想情况应该也是类似的。
阅读(5519) | 评论(0) | 转发(0) |