Доступ к репозиторию по сети
Организовать сетевой доступ к локальному репозиторию пакетов можно с использованием HTTP или NFS.
Доступ по HTTP
Для предоставления доступа по протоколу HTTP достаточно использовать любой веб-сервер, способный отдавать статические файлы. В качестве примера рассмотрена настройка веб-сервера angie (об этом подробнее см. раздел Веб-сервер Angie).
Для настройки HTTP-сервера нужно выполнить следующие шаги:
- Установить веб-сервер:
sudo dnf install angie
- Открыть основной конфигурационный файл на редактирование:
sudo nano /etc/angie/angie.conf
- Привести файл к необходимому виду. Ниже приведён минимальный пример:
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.
- Запустить веб-сервер и добавить его в автозапуск:
sudo systemctl enable --now angie
- Проверить доступ к репозиторию, открыв в браузере адрес
http://<IP-адрес_сервера>:80. Должно отобразиться содержимое каталога/srv.
Примечание – Если требуется только временный или тестовый доступ, можно использовать встроенный модуль Python:
python3 -m http.server
По умолчанию сервер запускается на порту 8000. В конфигурационном файле репозитория указать адрес в формате:
baseurl=http://192.168.1.100:8000
Для настройки HTTP-клиента необходимо:
- В файлах конфигурации
/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/
При необходимости можно указать несколько репозиториев через запятую — в случае недоступности первого будет использован следующий.
- Проверить работу подключённого репозитория:
sudo dnf makecache
Доступ по NFS
Для организации доступа по сети с использованием NFS необходимо настроить NFS-сервер и клиент.
Для настройки NFS-сервера необходимо:
- Установить утилиты NFS:
sudo dnf install nfs-utils
- Открыть файл конфигурации сервера:
sudo nano /etc/exports
- Добавить строку с настройками общего доступа. Пример:
/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.
- Запустить сервер и добавить его в автозапуск:
sudo systemctl enable --now nfs-server
Для настройки NFS-клиента необходимо:
- Создать каталог для монтирования:
sudo mkdir -p /mnt/nfs
- Открыть файл
/etc/fstabдля редактирования:
sudo nano /etc/fstab
- Добавить строку монтирования NFS-ресурса:
192.168.1.100:/srv /mnt/nfs nfs4 auto,_netdev,bg,nofail
где 192.168.1.100 — адрес NFS-сервера.
- Выполнить монтирование для проверки:
sudo mount /mnt/nfs
- Указать путь к локальному репозиторию в файле
/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/
- Проверить работу подключённого репозитория:
sudo dnf makecache
Вывод должен представлять собой список репозиториев, подключённых в Системе и успешно обработанных пакетным менеджером dnf.