Простая пересборка пакета для своего дистрибутиваКраткая памятка, изложено применительно к debian-based системам. Где-то вычитал, попробовал руками (получилось, порадовался) и излагаю своими словами.
В общем, бывает ситуация, когда нужного пакета или нужной версии нужного пакета в репозиториях используемого дистрибутива (у нас, например, Ubuntu 11.10 Oneiric) нет. А есть, например, в экспериментальной ветке своего дистрибутива (Ubuntu 12.04 Precise) или родственном дистрибутиве с той же системой управления пакетами (Mint, Aptosid, Ubuntu, Debian etc.), но с отличными от имеющихся версиями зависимых пакетов.
На примере пакета
kstreamripper (программа грабит звуковой поток в mp3 файлы).
1. Находим готовый deb пакет нужной программы (нашли в
MEPIS community repository)
2. Копируем адрес .dsc файла и выполняем
dget file.dsc, в нашем случае
Код
dget http://main.mepis-deb.org/mepiscr/repo/pool/main/k/kstreamripper/kstreamripper_0.7.74-0mcr110+1.dsc
Команда загрузит dsc файл, исходные тексты программы, и патчи, если присутствуют.
3. Распаковываем полученный пакет с исходниками:
dpkg-source -x file.dsc, в нашем случае
Код
dpkg-source -x kstreamripper_0.7.74-0mcr110+1.dsc
4. Идём во вновь созданный каталог с исходниками /kstreamripper-0.7.74, опционально редактируем файл
/kstreamripper-0.7.74/debian/changelog, где при необходимости добавляем новую секцию, правим номер версии, причины пересборки (например, Rebuild for Ubuntu Oneiric), вписываем имя и адрес майнтейнера (свой), и время сборки.
Было
Код
kstreamripper (0.7.74-0mcr110+1) mepis; urgency=low
* blablabla
-- original maintainer <maintainer@mepis.org> Mon, 13 Aug 2011 14:13:27 +0400
...
Стало
Код
kstreamripper (0.7.74-0~coolbuild1) oneiric; urgency=low
* Rebuild for my distro (Ubuntu Oneiric)
-- rebuild maker <cool.boy@sibnet.ru> Mon, 09 Jan 2012 15:00:00 +0700
kstreamripper (0.7.74-0mcr110+1) mepis; urgency=low
* blablabla
-- original maintainer <maintainer@mepis.org> Mon, 13 Aug 2011 14:13:27 +0400
...
5. Возвращаемся в /kstreamripper-0.7.74/, и пробуем сделать
Код
dpkg-buldpackage
Скорее всего, будет выход по ошибке из-за отсутствия сборочных зависимостей. Смотрим список отсутствующих пакетов, доставляем, повторяем
Код
dpkg-buldpackage
Вуаля.
6. Готовые пересобранные пакеты под свой дистрибутив ищем там же, где лежал исходный .dsc файл.
Просто и изящно, ИМХО.
Сообщение отредактировал jnzz - 10.1.2012, 16:28