上次为一台运行 RHEL7 的服务器安装软件时,出于安全性以及保密性的原因,该机器被限制不能连接外网,这导致了不能像平时一样使用 Yum 命令从软件源下载软件包来安装程序。这时对于依赖较少的程序,使用 rpm命令来安装下载好的软件包也未尝不可,你可以根据提示顺藤摸瓜,一个一个下载安装所依赖的软件包(如你想要安装程序A,A又依赖于程序B和C,这时你可以先将A、B、C下载之后,先安装B和C,再安装A。但这并不是本文的主题)。而如果遇到依赖程序比较多的情况(比如安装 mono 运行时),这个办法肯定会让你抓狂。而且经常会遇到A依赖B,B依赖C,C又依赖D……,这种情况。
Yum 程序可以自动根据依赖情况安装所需程序来解决依赖问题。在离线或者蜗牛网速的时候,配置一个离线的软件源可以说是解决程序安装问题最方便的办法。
我配置软件源时使用的 Linux发行版是 RHEL,该方法应该也使用 CentOS 和 Fedora 等这些发行版。现在介绍下自己的操作步骤,权当为自己再次需要时做参考,也希望对新手能有些借鉴意义。高手请呵呵略过。
以下操作请在 root 账号下执行,否则可能会遭遇权限问题。
首先,你要有创建软件源的软件包,当你创建好软件源后,这些程序包就能在你安装程序时被索引。所以,你搭建的本地软件源应该至少包含你想要安装的程序包以及最常用的一些程序包。需要安装的程序包可以去项目的官网下载,而 RHEL/CentOS 的安装光盘里包含了最常用的软件包,有这两样就够了。
把你下载的 rpm软件包以及光盘的 Packages/ 目录下的软件包拷贝到本机的一个文件夹下(挂载光盘的命令是“mount /dev/cdrom”)。我存放这些程序包的文件目录是 /mnt/cdrom,把 rpm 文件全丢进去就可以。
接下来使用 createrepo创建索引信息:
createrepo -v /mnt/cdrom/
然后编辑repo文件
vi /etc/yum.repos.d/local.repo #你自己的repo 文件
创建内容:
[local_server] (库名称)
name=This is a local repo (名称描述)
baseurl=file:///mnt/cdrom (yum源目录,源地址)
enabled=1(是否启用该yum源,0为禁用)
gpgcheck=0(检查GPG-KEY,0为不检查,1为检查)
最后清理 YUM 缓存以及建立新缓存
yum clean all
yum makecache
快安装一个程序试试吧。
最后,感谢—Redundancy—的帮助。
更多YUM相关教程见以下内容: