Создание локального репозитория Fedora Linux


Процесс создания локального репозитория предельно прост! Необходимо создать директорию, в которой будет хранится репозиторий:

# 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. В противном случае (при отсутствии доступа к сети), пакетный менеджер прервет свою работу и вам не удастся установить файлы из своего локального “репа”. Теперь вы можете устанавливать пакеты из локального репозитория.

Зачем это нужно?

Например, в классе много машин, а скорость сети слишком низкая. В целях экономии траффика. К тому же, с диска установка может осуществляться быстрее, нежели скачивание и установка по сети. Если недостаточно знаний и возможностей для развертывания локального репозитория в локальной сети класса.

Оцените материал
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)
Загрузка...

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.