RelaxДом

Быстрый поиск

Расширенный поиск

Авторизация

Запомнить? | Забыл пароль?
 
Register
Welcome
 
RelaxДом > Андеграунд > Операционные системы > Debian » Создания репозитория Debian/GNU Linux
Ответ
Непрочитано 08.10.2008, 17:32   #1
FreeSky Мужской

Аватар для FreeSky
 
Осваиваюсь
Регистрация: 11.06.2008
Адрес: /dev/sda2
Сообщений: 143
pm
По умолчанию Создания репозитория Debian/GNU Linux

[Ссылка заблокирована: Зарегистрируйтесь!]

Вся информация ТОЛЬКО отсюда, моего ничего нет. Может, кому-нибудь пригодится)

Для дистрибутивов основанных на 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 >$dir/Packages.gz
bzip2 -9c <$dir/Packages >$dir/Packages.bz2
Это следует проделать для каждой архитектуры, для которой есть пакеты в main. Затем необходимо создать индексные файлы для исходных текстов

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

Код:
Archive: unstable
Suite: unstable
Component: main
Origin: <org_name>
Label: <label>
Architecture: <architectures>
Создайте такой файл и заполните необходимые поля, затем дайте команды

Код:
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
Казалось бы, все готово, но я на этом не успокоился. Есть такой проект под названием DDTP (Debian Description Translation Project), участники которого занимаются переводом описаний к пакетам на разные языки. В дистрибутивах Debian lenny и sid менеджеры пакетов apt и aptitude уже умеют получать и обрабатывать переводы описаний. Мне захотелось перевести описания созданных пакетов на русский язык. Если вы используете пакеты из репозитория Debian, то вам не обязательно переводить описания самому, можно воспользоваться описаниями, которые лежат на серверах Debian, и положить их в свой репозиторий. Я же имею в виду описания к тем пакетам, которые вы создали сами

О том как создавать Translation файлы я смог узнать лишь из исходников пакета apt, прочитав содержимое файла README.ddtp. Файл Translation состоит из секций следующего вида:

Код:
Package: "имя пакета"
Description-md5: "Сумма md5 для английского описания"
Description-$lang.$encoding: "Перевод краткого описания"
"Перевод остального описания"
При этом если английское описание такое

Код:
Description: XXX
 YYY
 .
 ZZZ
то сумма md5 вычисляется следующим образом: md5("XXX\n YYY\n .\n ZZZ\n")

Так как я не нашел готового решения для построения Translation файлов, я написал скрипт, который получает переводы пакетов и строит необходимые файлы для репозитория. Итак, выберем каталог куда будем сохранять переводы пакетов, например ~/work/Translations. Будем в ней создавать подкаталоги для разных переводов, например ~/work/Translations/en и ~/work/Translations/ru. В подкаталогах en и ru будут лежать файлы, названия которых совпадают с названиями пакетов. Например, файл ~/work/Translations/en/lsmbox имеет вид:

Код:
List number of total/unread messages for mailboxes
 This program lists the number of total and unread messages in one
 or several mailbox files
А файл ~/work/Translations/ru/lsmbox имеет точно такую же структуру, но описание переведено на русский язык. Ну а дальше построить файл Translation-ru это дело техники

Результатом моих трудов оказался небольшой скрипт, который, возможно, поможет вам легко организовать свой собственный репозиторий
FreeSky вне форума   Ответить с цитированием
Непрочитано 10.10.2008, 18:49   #2
FreeSky Мужской

Аватар для FreeSky
 
Осваиваюсь
Регистрация: 11.06.2008
Адрес: /dev/sda2
Сообщений: 143
pm
По умолчанию Re: Создания репозитория Debian/GNU Linux

Извините за даблпост, решил отдельно от предыдущего сделать сообщения.

Вообщем, Mamluk сказал, что у него скоро появятся диски с последним срезом репозитория Debian Etch 4.0. У меня имеется возможность разместить данный репозиторий, только надо будет немного почитать статьи (кроме этой). Кто как к этому относится? Кто хочет (может) как-нибудь помочь этому? Диски у Mamluk'а я возьму.

Комментарии

Последний раз редактировалось FreeSky; 10.10.2008 в 18:53.
FreeSky вне форума   Ответить с цитированием
Непрочитано 11.10.2008, 01:44   #3
BIT Мужской

Аватар для BIT
 
Администратор
Регистрация: 26.11.2007
Сообщений: 998
pm
По умолчанию Re: Создания репозитория Debian/GNU Linux

У тебя репа то будет круглосуточная надеюсь?
__________________

В памяти моей ты останешься молодой и любимой...
BIT вне форума   Ответить с цитированием
Непрочитано 11.10.2008, 13:04   #4
FreeSky Мужской

Аватар для FreeSky
 
Осваиваюсь
Регистрация: 11.06.2008
Адрес: /dev/sda2
Сообщений: 143
pm
По умолчанию Re: Создания репозитория Debian/GNU Linux

Вот в этом то и проблемко... Так то основное время да. Но иногда не олайн (летом например, осенью в начале в выходные (сейчас уже онлайн будет), весной поздней). А так большей частью онлайн
FreeSky вне форума   Ответить с цитированием
Непрочитано 11.10.2008, 15:34   #5
BIT Мужской

Аватар для BIT
 
Администратор
Регистрация: 26.11.2007
Сообщений: 998
pm
По умолчанию Re: Создания репозитория Debian/GNU Linux

Скока файлы весят?(все вместе)
__________________

В памяти моей ты останешься молодой и любимой...
BIT вне форума   Ответить с цитированием
Непрочитано 11.10.2008, 15:44   #6
FreeSky Мужской

Аватар для FreeSky
 
Осваиваюсь
Регистрация: 11.06.2008
Адрес: /dev/sda2
Сообщений: 143
pm
По умолчанию Re: Создания репозитория Debian/GNU Linux

[Ссылка заблокирована: Зарегистрируйтесь!]

Информация по использованию репозитория.

Весь репозиторий занимает 16.1 Гб. Разместил свой репозиторий (Стандартный набор дисков с Debian: 4DVD+2CD). Скоро будет обновлённый репозиторий. Просьба потестировать репозиторий!

А что, есть возможность разместить репозиторий у вас тут??

Последний раз редактировалось FreeSky; 11.10.2008 в 19:48.
FreeSky вне форума   Ответить с цитированием
Непрочитано 05.02.2009, 01:57   #7
Seefon Мужской

Аватар для Seefon
 
IT
Регистрация: 03.12.2007
Адрес: Reynholm Industries
Сообщений: 633
pm
По умолчанию Re: Создания репозитория Debian/GNU Linux

UP
FreeSky, MS_WEB пока не робит, выложи плз сюда инфу
__________________
http://forum.relaxdom.net/signaturepics/sigpic10272_24.gif
Seefon вне форума   Ответить с цитированием
Непрочитано 05.02.2009, 14:42   #8
Deny Мужской

 
Известный житель
Регистрация: 24.09.2007
Адрес: динамический
Сообщений: 2,220
pm
По умолчанию Re: Создания репозитория Debian/GNU Linux

он робит, но пока только для локальных пользователей(
//Про это я в курсе, Seefon
__________________
[Ссылка заблокирована: Зарегистрируйтесь!]

Последний раз редактировалось Seefon; 05.02.2009 в 15:24.
Deny вне форума   Ответить с цитированием
 
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход