Как создать и использовать локальный репозиторий CentOS 7 YUM

Как создать и использовать локальный репозиторий CentOS 7 YUM

 

Это руководство поможет вам настроить локальный репозиторий CentOS 7 YUM локально на вашем сервере / настольном компьютере. Мы предоставили все шаги, необходимые для создания рабочего локального репозитория yum с использованием  ISO-образа CentOS DVD . Ниже мы перечисляем все шаги, которые необходимо использовать при создании локальных репозиториев CentOS 7 YUM.

 

Шаг 1. Загрузите ISO-образ CentOS-7-x86_64-Everything или CentOS 7 DVD.

В этом руководстве я буду использовать ISO-образ CentOS-7-x86_64-Everything-2009, который можно загрузить с помощью команды 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

После скачивания его надо будет смонтировать. Мы можем использовать два варианта монтажа:

Монтирование ISO-файла в локальный каталог в нашей системе Linux

Создайте каталог для монтирования

sudo mkdir -p /mnt/centos7

Смонтируйте ISO-образ CentOS Everything или CentOS 7 DVD 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

Монтирование файла образа ISO в каталог веб-сервера

Я использую сервер Apache, работающий на другом сервере CentOS.

sudo yum -y install httpd
sudo systemctl enable --now httpd

Если вы делаете это на любом другом сервере Linux, замените корневой каталог веб-сервера на тот, который указан здесь.

Создайте каталог для монтирования:

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

Если у вас был ISO-образ CentOS 7 DVD на CD/DVD-приводе. Создайте точку монтирования и смонтируйте компакт-диск с помощью следующих команд:

sudo  mkdir -p /mnt/cent/cdrom
sudo mount /dev/cdrom /mnt/cent/cdrom

Шаг 3. Создайте репо и поместите его в каталог /etc/yum/repos.d/

Это делается на сервере с минимальной установкой CentOS или на сервере, на котором вам нужно установить пакеты при извлечении пакетов из только что добавленного локального репозитория.

Для монтирования локального диска на /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

Для файлов репозитория на http сервере

Я использую IP-адрес сервера 192.168.1.60 . Ниже представлена ​​конфигурация репо.

[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

Переход к каталогу centos веб-сервера:

 

Для точки монтирования /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, удалите кешированную дату и обновите список репо

$ 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, 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параметры командной строки соответственно.

См. Ниже пример, который устанавливает все пакеты, принадлежащие группе среды « Хост виртуализации », мы сделаем следующее:

sudo yum --disablerepo=* --enablerepo=centos7-local groupinstall "Virtualization Host"

Установка отдельных пакетов:

sudo yum --disablerepo=* --enablerepo=centos7-local install vim

Позже вы можете вернуть репозитории в исходный каталог:

cp -r ~/repos/* /etc/yum.repos.d/

На этом пока все о том, как настроить локальные репозитории Yum в CentOS 7. Не забудьте скопировать репозитории обратно из ~ / repos / в каталог /etc/yum.repos.d/, если вам нужно использовать другие репозитории YUM, изначально настроенные на сервере. Мы поделимся аналогичным руководством для EPEL и других широко используемых репозиториев CentOS не из проекта разработки ОС.