Как создать и использовать локальный репозиторий 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 не из проекта разработки ОС.