Собственный apt repo
А началось всё с того, что один мой друг, у которого неисточимый запас ехидности, подколол меня отсутствием автоматического определения кодировки id3-тэгов в audacious в Kubuntu. И это всё после того, как он съехал на Kubuntu со своей горячо любимой Fedora Core (голос за сценой плюётся и фыркает от воспоминаний про rpm). Горячо любима она им была за то количество … как бы выразится … удовольствия, которое она ему преподносила при настройке/установке чего-либо.
А в это время я как раз Kubuntu забросил и съехал на XUbuntu (чему и рад несказаннно). А в ней GTK и плеера нормального, кроме audacious, похоже нету. И убунтовцы о нас не подумали - о русско/японско/китайско-говорящих - и это долбанное определение кодировок по-умолчанию отключено. Ну думаю припинаю. Полез на форумы - оказывается там вообще только одна опция нужна при сборке и всё. Счас мы его…. apt-get source, опцию включаем, собираем ляля запускаем - болт!
Что делать - ума не приложу. Забросил. Задолбали иероглифы через недели 2, полез опять в инет на сайт audacious и к ним же в irc. Там какое-то мегаумное тело мне говорит - пользуй 1.3 и выше версию и будет тебе счастье, иначе горе твоему русско/китайско/японско говорящему племени ибо в 1.2 версию боги возможность определения кодировки не включили как таковую и пересборки не помогут. Мда. Скачал, попробовал собрать - вообще даже не открывает файлы. Тут вспоминаю о том, что надо ж ещё audacious-plugins. Начинаю собирать - а там эта же опция, что и при сборке самого audacious. Включаю, собираю. Не играет. Несколько раз пытаюсь собрать, забрасываю.
На ум приходит здравая мысль, что когда я пересобирал пакет audacious, надо было пересобрать и плугины. Сказано - сделано. Пересобрал, запустил - и о чудо - заработало! Неплохой скин к рабочему audacious можно взять тут. После скачивания распаковываем в /usr/share/audacious/Skins/noncompliance.
Забегая наперёд, audacious, собранный с опцией автоопределения charset, лежит в моём репозитарии; о том где его найти и как воспользоватся прочесть можно тут.
Порадовавшись, решил сделать всё кошерно - ведь аппетит он во время еды приходит. Давай-ка думаю засетаплю репозитарий свой тем более недавно на работе делал. “И тут такое началось …” (с) Сетапил часа 2, для понятливых говорю что лирика тут заканчивается и начинается хауту по сетапу своего репозитария с ключами и на основе reprepro. В конце HOWTO - небольшая заметка об установке репозитария в vserver.
Apt repo HOWTO.
touch /home/apt/conf/distributions
Label: название_репозитария
Suite: stable
Codename: feisty
Version: 7.04
Architectures: i386
Components: main
SignWith: yes - включает подписывание пакетов ключём.
DebIndices: Packages Release . .gz
В данном примере считается, что сгенерированный в следующем пункте gpg-ключ есть единственный либо первый в списке, который выдаёт gpg –list-keys. Им и будут подписыватся пакеты.
где “User Name” - имя, которое вводилось при создании ключа.
reprepro -Vb . includedeb feisty our_cool_package-1.0ubuntu0.deb
Это создаст структуру репозитария и добавит туда пакет our_cool_package, подписав его.
touch apt
Открываем ./apt в текстовом редакторе, пишем туда:
ServerAdmin webmaster@mysite.com
ServerName apt.mysite.com
DocumentRoot /home/apt
<Directory />
Options -FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/apt/>
Options -FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/apt-error.log
LogLevel debug
CustomLog /var/log/apache2/apt-access.log combined
ServerSignature Off
</VirtualHost>
Потом включаем созданный виртуал хост и перезапускаем apache2:
ln sites-available/apt sites-enabled/apt
/etc/init.d/apache2 restart
Должно выдать OK. Если всё сделано правильно до этого, то можно делать
и пользоватся пакетами из репозитария!
Заметка о vserver: может быть проблема лишь у меня, но я убедился методом неоднократной пробы для себя в том, что сгенерированный внутри vserver-environment gpg-ключ неюзабелен в последствии. Обошёл проблему я генерацией ключа на реальном хосте, экспортированием private key и импортированием его внутри vserver-environment. Делается это следующей последовательностью команд:
gpg --export-secret-key -a "User Name" > private.key,
# где User Name - полное имя, введённое при генерации ключа
#.... копируем private.key внутрь висервера ...
gpg --allow-secret-key-import --import private.key
Использованные материалы:
Фух, вроде всё. Комментарии приветствуются, ибо уверен что стиль написания хромает…. О собственно пользовании репозитарием будет позже, там всё очень просто и у меня уже готов материал, но на английском, - перевод сейчас “аффтар ниасилил”.
2007-08-21 at 8.07 pm
Умничка - хорошо написал
Только вот и помог бы англоязычным собратьям написав бы это все еще и на английском 
2007-08-26 at 4.36 am
Помогу. Есть кое-какие идеи, по времени всё сразу не успеваю. Перевод будет скоро, я плугин для многоязыковости прикручу на днях.
2008-05-21 at 9.47 pm
Спасибо автору за полезную статью