Создание собственного репозитория

Материал из ALT Linux Wiki
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.
Примечание: Данная статья создана для организаций, которые хотят создать собственный репозиторий с ПО для ALT Linux, совместимый с APT-RPM, который используется в данной системе.


Рпозиторий ALT Linux состоит из двух компонетов:

  • индексов - где описаны все пакеты, ссылки на них и их версии
  • самих пакетов (в формате *.rpm)

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

Первым делом нужно создать каталог репозитория.

Примечание: Вы можете создать репозиторий в любом месте файловой системы
$ su -

Общий пример:

# mkdir путь/где/вы/хотите/создать/репозиторий
# cd путь/где/вы/хотите/создать/репозиторий
# mkdir -p x86_64/RPMS.classic #создание хранилища пакетов

Находиться он может в любом месте.

Примечание: В нашем примере репозиторий будет в домашнем каталоге - ~


Например:

# mkdir ~/MyRepo
# cd ~/MyRepo
# mkdir -p x86_64/RPMS.classic

В новосозданном пути обратите внимание на следующие моменты:

  • x86_64 - архитектура пакетов
  • RPMS.classic - каталог с пакетами. Обычно он имеет компонент classic, но можно указать любое имя компонента. (Компонент - последнее слово после "RPMS.")

В этот каталог RPM.classic и нужно скопировать все ваши *.rpm пакеты.

Полный путь для *.rpm-пакетов, в нашем случае, получается таким:

  • /home/user/MyRepo/x86_64/RPMS.classic/

Создание индексов

Следующим шагом нам нужно создать индексы для репозитория.

Для этого нам нужна утилита apt-repo-tools. Установим ее следующей командой

$ su -
# apt-get install apt-repo-tools

Переходим в каталог с нашей созданной папкой x86_64 и оттуда выполняем команду:

# genbasedir --create --progress --topdir=. x86_64 classic

В нашем примере:

# cd home/user/MyRepo/
# genbasedir --create --progress --topdir=. x86_64 classic

По результатам выполнения команды в этом же каталоге в подкаталоге x86_64 создается каталог base

Получается путь:

/home/user/MyRepo/x86_64
├── base
│   ├── pkglist.classic
│   ├── pkglist.classic.bz2
│   ├── pkglist.classic.xz
│   ├── release
│   └── release.classic
└── RPMS.classic

Публикация в сети

Теперь данный каталог (/home/user/MyRepo/x86_64) нужно опубликовать на http, ftp или rsync сервере.

Например, вы опубликовали данный каталог (x86_64) по IP/altlinux/p10/x86_64

Там путь:

├── base
│   ├── pkglist* <- в этих файлах список пакетов
│   └── release* <- в этих файлах информация о репозиториях
└── RPMS <- в этом каталоге лежат rpm-пакеты

Полный путь для добавления в систему (в файл sources.list) получается такой:

rpm http://IP/altlinux/p10 x86_64 classic