Репозиторий для Debian/Ubuntu

Дистрибутивы > Debian
Для дистрибутивов основанных на Debian алгоритм создания репозиториев очень похож или совершено такой же. Эта заметка не подойдет тем, кто хочет сделать зеркало репозитория Debian, для этого используются другие инструменты.
Необходимость создания репозитория может возникнуть у того, кто создал свое программное обеспечение и хочет его выложить в открытый доступ в удобно устанавливаемом и обновляемом виде. Такой репозиторий также удобно использовать для локальных сетей, чтобы из большого Интернета не скачивать одни и те же пакеты много раз. Для организации репозитория на своем сервере можно использовать программу reprepro, но способ, описанный ниже, мне показался более наглядным.
Итак, приступим. Для начала следует выбрать дирректорию, в которой мы хотим выкладывать наши deb пакеты. Пускай это будет /var/www/repositories/debian.
 
prefix=/var/www/repositories/debian
mkdir -p $prefix/main
 
Копируем все необходимые deb пакеты в /var/www/repositories/debian/main, там можно устроить любую структуру каталогов. Я сделал подкаталоги для каждого пакета и положил в них файлы .deb, .dsc, .changes и .tar.gz.
Далее переходим в корень нашего репозитория
 
cd $prefix
 
Создаем индексные файлы. Для бинарных пакетов сделать это можно с помощью команды dpkg-scanpackages.
 
dir=$prefix/dists/unstable/main/binary-i386
mkdir -p $dir
dpkg-scanpackages --arch i386 main /dev/null > $dir/Packages
gzip -9c $dir/Packages.gz
bzip2 -9c $dir/Packages.bz2
 
Это следует проделать для каждой архитектуры, для которой есть пакеты в main. Затем необходимо создать индексные файлы для исходных текстов

dir=$prefix/dists/unstable/main/source
mkdir -p $dir
dpkg-scansources main /dev/null > $dir/Sources
gzip -9c $dir/Sources.gz
bzip2 -9c $dir/Sources.bz2
 
И наконец, необходимо создать файл $prefix/dists/unstable/main/Release, который имеет следующую структуру:

Archive: unstable
Suite: unstable
Component: main
Origin: название моей организации
Label: Debian репозиторий моей организации
Architecture: архитектуры
 
Создайте такой файл и заполните необходимые поля, затем дайте команды
 
dir=$prefix/dists/unstable/main
apt-ftparchive release $dir >>$dir/Release
 
Последняя команда вычислит MD5Sum, SHA1 и SHA256 для файлов Packages* и Sources*.
Осталось только подписать репозиторий. Если у Вас еще нет gpg ключа, то дайте команду gpg --gen-key и следуйте инструкциям. Если у Вас уже есть gpg ключ, то следующая команда подпишет ваш репозиторий:
 
gpg -abs -o $dir/Release.gpg $dir/Release
 
На этом можно остановиться и начать пользоваться только что организованным репозиторием. Для того, чтобы aptitude, apt и др. смогли найти новый репозиторий, надо добавить необходимые записи в /etc/apt/sources.list. Если у вас локальный репозиторий, для себя:
 
deb file:///var/www/repository/debian main unstable
deb-src file:///var/www/repository/debian main unstable
 
Если репозиторий доступен по http:
 
deb http://example.com/repository/debian main unstable
deb-src http://example.com/repository/debian main unstable

Комментарии
]]> ipv6 ready Kiev LUGLinux4MeНостальгияЛичный сайт skeletora ]]>