本文介绍如何创建和使用本地CentOS 7 YUM存储库(Repository)的方法。内容有:下载CentOS-7-x86_64-Everything ISO或CentOS 7 DVD ISO映像、创建挂载点和挂载ISO映像、创建一个repo并将其放在/etc/yum/repos.d/目录中等。
前言 作为Linux系统管理员,在一台服务器或一组服务器上安装软件包几乎是一种义务。但是,通过Internet从官方CentOS存储库安装软件包并不总是理想的。一个很好的例子是当您的Internet连接速度较慢并希望通过在LAN上创建存储库来节省带宽时。或者在具有严格安全策略的环境中,要求所有系统补丁都在LAN网络内完成。 本文将帮助您在服务器/台式机本地设置本地CentOS 7 YUM存储库。我们提供了使用CentOS DVD ISO映像(http://isoredirect.centos.org/centos/7/isos/)创建工作的本地yum存储库所需的所有步骤。下面我们列出了创建本地CentOS 7 YUM存储库时要使用的所有步骤。
步骤1:下载CentOS-7-x86_64-Everything ISO或CentOS 7 DVD ISO映像 在本文中,我将使用CentOS-7-x86_64-Everything-2009 ISO镜像,它可以通过curl或wget命令下载: curl -O http://centos.mirror.liquidtelecom.com/7.9.2009/isos/x86_64/CentOS-7-x86_64-Everything-2009.iso 你也可以使用CentOS 7 DVD ISO: curl -O http://centos.mirror.liquidtelecom.com/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso
步骤2:创建挂载点和挂载ISO映像 下载后,我们必须挂载它。我们可以使用两种安装选项。 1、将ISO文件挂载到我们Linux系统中的本地目录 创建挂载目录: sudo mkdir -p /mnt/centos7 挂载CentOS Everything或CentOS 7 DVD ISO的ISO映像: sudo mount -t iso9660 -o loop CentOS-7-x86_64-Everything-2009.iso /mnt/centos7 使用du或ls命令确认它已安装: $ du -sch /mnt/centos7/* 512 /mnt/centos7/CentOS_BuildTag 8.4M /mnt/centos7/EFI 512 /mnt/centos7/EULA 18K /mnt/centos7/GPL 68M /mnt/centos7/images 60M /mnt/centos7/isolinux 498M /mnt/centos7/LiveOS 9.0G /mnt/centos7/Packages 29M /mnt/centos7/repodata 2.0K /mnt/centos7/RPM-GPG-KEY-CentOS-7 2.0K /mnt/centos7/RPM-GPG-KEY-CentOS-Testing-7 3.0K /mnt/centos7/TRANS.TBL 9.6G total 2、将ISO映像文件挂载到Web服务器目录 我正在使用在另一台CentOS服务器上运行的Apache服务器,参考在CentOS 8系统中安装Apache服务器的方法: sudo yum -y install httpd sudo systemctl enable --now httpd 如果您在任何其他Linux服务器上执行此操作,请将Web服务器的根目录替换为此处提供的目录。 创建挂载目录: sudo mkdir /var/www/html/centos7/ sudo mount -t iso9660 -o loop CentOS-7-x86_64-Everything-2009.iso /var/www/html/centos7/ 您从上一个命令获得的输出是: mount: /dev/loop0 is write-protected, mounting read-only /var/www/html/centos/目录的内容应该如下所示: $ ls -lh /var/www/html/centos7/ total 1.7M -rw-r--r-- 1 root root 14 Oct 29 2020 CentOS_BuildTag drwxr-xr-x 3 root root 2.0K Oct 26 2020 EFI -rw-rw-r-- 17 root root 227 Aug 30 2017 EULA -rw-rw-r-- 17 root root 18K Dec 9 2015 GPL drwxr-xr-x 3 root root 2.0K Oct 26 2020 images drwxr-xr-x 2 root root 2.0K Oct 26 2020 isolinux drwxr-xr-x 2 root root 2.0K Oct 26 2020 LiveOS drwxr-xr-x 2 root root 1.6M Oct 29 2020 Packages drwxr-xr-x 2 root root 4.0K Oct 29 2020 repodata -rw-rw-r-- 17 root root 1.7K Dec 9 2015 RPM-GPG-KEY-CentOS-7 -rw-rw-r-- 15 root root 1.7K Dec 9 2015 RPM-GPG-KEY-CentOS-Testing-7 -r--r--r-- 1 root root 2.9K Nov 2 2020 TRANS.TBL 如果您在CD/DVD驱动器上有CentOS 7 DVD ISO映像。使用以下命令创建挂载点并挂载cdrom: sudo mkdir -p /mnt/cent/cdrom sudo mount /dev/cdrom /mnt/cent/cdrom
步骤3:创建一个repo并将其放在/etc/yum/repos.d/目录中 这是在具有CentOS最小安装的服务器上完成的,或者是在从刚添加的本地存储库中提取软件包时需要在其上安装软件包的服务器上完成的。 1、对于/mnt上的本地磁盘安装 如果您使用本地目录挂载选项,则配置如下。 创建存储库文件: sudo vim /etc/yum.repos.d/centos7-local.repo 添加如下所示的内容: [centos7-local] name=centos7-local baseurl=file:///mnt/centos7/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 2、对于http服务器上的存储库文件 我使用的服务器的IP地址是192.168.1.60。下面是repo配置: [centos7-local] name=centos7-local baseurl=http://192.168.1.60/centos7 enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 浏览到Web服务器的centos目录:
3、对于cdrom挂载点/mnt/centos/cdrom/ 如果你使用/mnt/centos/cdrom/的挂载点: [centos7-local] name=centos7-local baseurl=file:///mnt/cent/cdrom/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 然后执行yum clean all remove cached date并更新repo list: $ sudo yum clean all Loaded plugins: fastestmirror, langpacks, priorities Cleaning repos: base epel extras remi-safe updates Cleaning up everything Cleaning up list of fastest mirrors 注意:仅启用本地添加的存储库不足以让我们从中安装软件包。这是因为默认情况下,安装的任何软件包都将使用CentOS Base存储库。我们将很快讨论一个可行的解决方案。 CentOS 7软件库中可用的软件包组有: $ sudo yum group list Loaded plugins: fastestmirror There is no installed groups file. Maybe run: yum groups mark convert (see man yum) Loading mirror speeds from cached hostfile * base: mirror.bitco.co.za * epel: epel.mirrors.ovh.net * extras: mirror.bitco.co.za * updates: mirror.bitco.co.za Available Environment Groups: Minimal Install Compute Node Infrastructure Server File and Print Server MATE Desktop Basic Web Server Virtualization Host Server with GUI GNOME Desktop KDE Plasma Workspaces Development and Creative Workstation Available Groups: CIFS file server Compatibility Libraries Console Internet Tools Desktop Desktop Platform Desktop Platform Development Development Tools Eclipse Educational Software Electronic Lab FCoE Storage Client Fedora Packager General Purpose Desktop Graphical Administration Tools Haskell Legacy UNIX Compatibility Messaging Client Support Messaging Server Support Milkymist MySQL Database client MySQL Database server NFS file server Network Storage Server SNMP Support Scientific Support Security Tools Server Platform Server Platform Development Smart Card Support Storage Availability Tools System Administration Tools System Management TeX support TurboGears application framework Virtualization Web-Based Enterprise Management Xfce iSCSI Storage Client Done 当启用其他CentOS存储库并且您指定centos-local存储库时,yum将始终尝试从带有最新软件包的存储库下载最新软件包。默认存储库是CentOS Base存储库。 如果您想强制yum使用本地存储库,则必须禁用所有其他存储库并在完成后启用它们。您可以使用两个选项来实现此目的。 选项1:将所有其他存储库移动到备份文件夹 最简单的解决方案如下: mkdir ~/repos cp -r /etc/yum.repos.d/* ~/repos/ ls -l ~/repos/ rm -rf /etc/yum.repos.d/* ls -l /etc/yum.repos.d/ 将本地存储库文件复制回来: sudo cp ~/repos/centos7-local.repo /etc/yum.repos.d/ 查看是否添加成功: sudo yum repolist 从本地存储库安装包的示例:
要安装属于“GNOME Desktop”环境组的所有软件包,我们将执行以下操作: sudo yum groupinstall "GNOME Desktop" 选项2:使用--enablerepo=centos7-local命令选项和--disablerepo=*命令选项 或者,相应地使用--enablerepo和--disablerepo命令选项。 请参阅下面安装属于“Virtualization Host”环境组的所有软件包的示例,我们将执行以下操作: sudo yum --disablerepo=* --enablerepo=centos7-local groupinstall "Virtualization Host" 安装单个包: sudo yum --disablerepo=* --enablerepo=centos7-local install vim 稍后您可以将存储库返回到原始目录: cp -r ~/repos/* /etc/yum.repos.d/
结语 以上就是关于如何配置CentOS 7本地Yum存储库的全部内容。如果您需要使用最初在服务器上配置的其他YUM存储库,请记住将存储库从~/repos/复制回/etc/yum.repos.d/目录。
相关主题 |