Процесс создания локального репозитория предельно прост! Необходимо создать директорию, в которой будет хранится репозиторий:
# 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. В противном случае (при отсутствии доступа к сети), пакетный менеджер прервет свою работу и вам не удастся установить файлы из своего локального “репа”. Теперь вы можете устанавливать пакеты из локального репозитория.
Зачем это нужно?
Например, в классе много машин, а скорость сети слишком низкая. В целях экономии траффика. К тому же, с диска установка может осуществляться быстрее, нежели скачивание и установка по сети. Если недостаточно знаний и возможностей для развертывания локального репозитория в локальной сети класса.
ТЕКСТ ВЗЯТ С РЕСУРСА http://inf-w.ru/?p=9229, автор sakhastro
Комментарии ()