Доступ к репозиторию по сети

Организовать сетевой доступ к локальному репозиторию пакетов можно с использованием HTTP или NFS.

Доступ по HTTP

Для предоставления доступа по протоколу HTTP достаточно использовать любой веб-сервер, способный отдавать статические файлы. В качестве примера рассмотрена настройка веб-сервера angie (об этом подробнее см. раздел Веб-сервер Angie).

Для настройки HTTP-сервера нужно выполнить следующие шаги:

  1. Установить веб-сервер:
sudo dnf install angie
  1. Открыть основной конфигурационный файл на редактирование:
sudo nano /etc/angie/angie.conf
  1. Привести файл к необходимому виду. Ниже приведён минимальный пример:
worker_processes  1;
events {
worker_connections  1024;
}
http {
include       mime.types;
default_type  application/octet-stream;
sendfile        on;
keepalive_timeout  65;
server {
listen       80;
server_name  localhost;
location / {
root   /srv;
autoindex on;
index  index.html index.htm;
}
error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   html;
}
}
}

Для выхода и сохранения изменений в редакторе nano использовать комбинации клавиш: Ctrl+X, затем Enter и Ctrl+O.

  1. Запустить веб-сервер и добавить его в автозапуск:
sudo systemctl enable --now angie
  1. Проверить доступ к репозиторию, открыв в браузере адрес http://<IP-адрес_сервера>:80. Должно отобразиться содержимое каталога /srv.

Примечание – Если требуется только временный или тестовый доступ, можно использовать встроенный модуль Python:

python3 -m http.server

По умолчанию сервер запускается на порту 8000. В конфигурационном файле репозитория указать адрес в формате:

baseurl=http://192.168.1.100:8000

Для настройки HTTP-клиента необходимо:

  1. В файлах конфигурации /etc/yum.repos.d/*.repo указать адрес собственного сервера. Пример:

Было:

baseurl=http://mirror.rosalab.ru/rosa/rosa$releasever/repository/x86_64/main/release/

Стало:

baseurl=http://192.168.1.100/repo/x86_64/rosa$releasever/repository/x86_64/main/release/

При необходимости можно указать несколько репозиториев через запятую — в случае недоступности первого будет использован следующий.

  1. Проверить работу подключённого репозитория:
sudo dnf makecache

Доступ по NFS

Для организации доступа по сети с использованием NFS необходимо настроить NFS-сервер и клиент.

Для настройки NFS-сервера необходимо:

  1. Установить утилиты NFS:
sudo dnf install nfs-utils
  1. Открыть файл конфигурации сервера:
sudo nano /etc/exports
  1. Добавить строку с настройками общего доступа. Пример:
/srv 192.168.1.1/255.255.255.0(ro,insecure,nohide,all_squash,anonuid\=1000,anongid=1000,no_subtree_check)

В приведённом примере доступ предоставляется только на чтение для сети с адресами от 192.168.1.1 до 192.168.1.255.

  1. Запустить сервер и добавить его в автозапуск:
sudo systemctl enable --now nfs-server

Для настройки NFS-клиента необходимо:

  1. Создать каталог для монтирования:
sudo mkdir -p /mnt/nfs
  1. Открыть файл /etc/fstab для редактирования:
sudo nano /etc/fstab
  1. Добавить строку монтирования NFS-ресурса:
192.168.1.100:/srv /mnt/nfs nfs4 auto,_netdev,bg,nofail

где 192.168.1.100 — адрес NFS-сервера.

  1. Выполнить монтирование для проверки:
sudo mount /mnt/nfs
  1. Указать путь к локальному репозиторию в файле /etc/yum.repos.d/*.repo:

Заменить содержимое строки:

baseurl=http://mirror.rosalab.ru/rosa/rosa$releasever/repository/x86_64/main/release/

на следующее содержимое:

baseurl=file:///mnt/nfs/srv/repo/x86_64/rosa$releasever/repository/x86_64/main/release/
  1. Проверить работу подключённого репозитория:
sudo dnf makecache

Вывод должен представлять собой список репозиториев, подключённых в Системе и успешно обработанных пакетным менеджером dnf.