云网牛站
所在位置:首页 > Linux云服务器 > 在Linux服务器上创建和使用本地CentOS 7 YUM存储库的方法

在Linux服务器上创建和使用本地CentOS 7 YUM存储库的方法

2021-06-06 15:31:12作者:区小凡稿源:云网牛站

本文介绍如何创建和使用本地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 8发行版上安装Curl的方法

你也可以使用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目录:

在Linux服务器上创建和使用本地CentOS 7 YUM存储库的方法

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

从本地存储库安装包的示例:

在Linux服务器上创建和使用本地CentOS 7 YUM存储库的方法

要安装属于“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/目录。

 

相关主题

创建本地CentOS 6/CentOS 7镜像和Epel镜像的方法

精选文章
热门文章