Процесс создания локального репозитория предельно прост! Необходимо создать директорию, в которой будет хранится репозиторий:
# mkdir -p /usr/share/repository
Для получения пакетов вам необходимо использовать ftp-клиент, например, FileZilla
и один из сайтов зеркалирования репозитория Fedora. Адреса зеркал можно получить на этом ресурсе: Fedora Public Active Mirrors.
Необходимо загрузить следующие папки (используйте протокол ftp):
-
ftp://<host_name>/pub/fedora/linux/releases/<version>/Everything/x86_64/os/Packages/
-
ftp://<host_name>/pub/fedora/linux/releases/<version>/Server/x86_64/os/Packages/
-
ftp://<host_name>/pub/fedora/linux/updates/<version>/Everything/x86_64/Packages/
debug
, drpm
и repodata
. Где <host_name>
— адрес хоста, а <version>
— версия Fedora.Все поддиректории с именами
a
, b
, c
и т. п. необходимо поместить в созданную вами директорию на локальном компьютере, создавая пути, как на удаленном хосте.
# mkdir -p /.../dir1/dir2/...
Скопируйте этот путь в окне ftp-клиента
Перейдите в эту директорию:
# cd /usr/share/repository
где repository
— это путь к директории Packages
, например:
./linux/releases/32/Everything/x86_64/os/Packages/
Установите пакет createrepo
:
# dnf install createrepo
Выполните следующую команду (для создания групп пакетов используйте команду указанную ниже):
# createrepo .
updates
необходимо периодически удалять и загружать заново. Поскольку имена пакетов изменяются, эту команду необходимо выполнить снова.Создайте файл /etc/yum.repos.d/file.repo
со следующим содержимым:
[My_Repository] baseurl=file:///repository enabled=1
Где My_Repository
— это имя вашего репозитория (например, everything-x86_64
), которое вы должны определить для каждого из ваших репозиториев, а repository
— это путь к директории Packages
.
Если вы хотите отображать в утилитах более подробные сведения, то вы можете в этот файл добавить опцию name
:
name=Local Fedora-32 Releases Everything x86_64
Переместите все файлы настроек (*.repo
-файлы) в системную директорию /etc/yum.repos.d/
, используя консольные команды или файл-менеджер в режиме пользователя root
.
Очистите кэш пакетов:
# dnf clean all
Получите список пакетов:
# dnf list
Пакетный менеджер DNF может работать с группами пакетов. Для того, чтобы появилась такая возможность и в вашем локальном репо, необходимо загрузить в папку с пакетами файл *comps*.xml
в котором хранится информация о группах. Этот файл можно найти в директории repodata
на удаленном сервере. Длинное имя файла можно усечь, переименовать файл в comps.xml
и сохранить в директории Packages
. Команду createrepo
необходимо сопровождать следующими ключами:
# createrepo -p -g comps.xml .
В директории /etc/yum.repos.d/
необходимо отключить все остальные (не локальные) репозитории. В каждом файле *.repo
опцию enabled
нужно установить = 0
. В противном случае (при отсутствии доступа к сети), пакетный менеджер прервет свою работу и вам не удастся установить файлы из своего локального «репа». Теперь вы можете устанавливать пакеты из локального репозитория.
Зачем это нужно?
Например, в классе много машин, а скорость сети слишком низкая. В целях экономии траффика. К тому же, с диска установка может осуществляться быстрее, нежели скачивание и установка по сети. Если недостаточно знаний и возможностей для развертывания локального репозитория в локальной сети класса.
Оцените материал