yum是一个命令,也是一个服务器,它是目前解决依赖包的最佳选择。
通过yum能够建立属于它自己的仓库,并通过相关的机制来调用仓库中相关的软件包资源,从而快速解决软件包之间存在的依赖关系问题。
yum的仓库分为外网仓库和内网仓库,外网仓库通常由社区、软件提供商等搭建和维护,对于这些公共的yum仓库资源,直接使用相关的配置文件并执行yum命令就能够调用和安装,同时还可以更新系统插件,这给运维工作带来了不少便利。当然,对于内网环境下的服务器,要解决依赖包的问题,同样可以搭建本地的yum仓库,搭建本地yum仓库将为解决依赖包问题带来极大的便利。
要搭建基于CentOS-S 8的本地yum仓库,可使用它的ISO文件中的资源作为yum仓库的资源。另外,由于该版本将软件包分别放在AppStream和BaseOS这两个目录下,且这两个目录下的包之间还存在依赖关系,因此在搭建本地yum仓库时,需要创建两个分别对应这两个目录的yum仓库配置文件,即分别创建/etc/yum.repos.d/appstream.repo和/etc/yum.repos.d/baseos.repo文件。
其中,/etc/yum.repos.d/appstream.repo文件的配置参数如下:
[appstream] name=CentOS Stream release 8 baseurl=file:///media/CentOS/AppStream gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
而/etc/yum.repos.d/baseos.repo文件的配置参数如下:
[baseos] name=CentOS Stream release 8 baseurl=file:///media/CentOS/BaseOS gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
这两个配置文件中定义的挂载点是/media/CentOS/(挂载点建议是一样的),此时需要创建这个挂载点,这样就可以使用以下命令来挂载ISO文件,以达到创建yum仓库资源的目的。
[root@centos-s8 ~]# mount -o loop /dev/sr0 /media/CentOS/
其中,/dev/sr0是ISO设备的名称,该名称可能是/dev/sr0、/dev/sr1或其他的名称,要根据实际的参数来定。
挂载后可以使用以下命令来一次性安装软件包:
[root@centos-s8 ~]# yum install [软件包名称] -y
如果一次性安装多个软件包,每个包之间以空格隔开。
运维前线
1)在工作环境下(特别是内网环境)可能还存在一种情况,就是光驱不能使用,也不能使用Web管理后台。在这样的环境下要解决依赖包的问题,一个简单的办法就是把ISO文件上传到服务器,如把ISO文件上传到/root/目录下(完整路径为/root/xxxx.iso),这样就可以使用mount命令来挂载,从而解决本地yum仓库源的问题。
[root@centos-s8 ~]# mount -o loop /root/xxxx.iso /mnt/
2)要在虚拟机环境下挂载ISO文件,可先在运行CentOS的虚拟机中打开“虚拟机设置”界面,然后找到CD/DVD(IDE),把ISO文件挂载上,并设置它的设备状态为已连接,如图2-2所示。
图2-2 CD/DVD(IDE)选项设置