Исходник тут http://s.arboreus.com/2008/01/deb.html
спойлер:
dpkg-buildpackage -us -uc
dpkg-source --commit
dpkg-buildpackage -us -uc
Иногда хочется пересобрать какой-нибудь пакет дистрибутива, включив или отключив в нём что-нибудь на свой вкус (наложив патч, изменив опции сборки...). Например, я (для личного пользования) вырезаю занимающее полэкрана приветствие gnuplot при его запуске :)
К счастью, пересобрать (изменённый) пакет достаточно просто. Последовательность действий:
0. Убедиться, что в /etc/apt/sources.list
есть подходящая запись deb-src; добавить, если нет. Добавляется примерно такая строчка:
deb-src http://ftp.ru.debian.org/debian/ testing main contrib non-free
в ней можно менять адрес зеркала, ветку (например, stable или unstable вместо testing) и разделы репозитория.
После этого надо сделать aptitude update
. Перейти в каталог, в котором собираетесь собирать исходники.
1. Получить исходники пакета: apt-get source -t unstable названиепакета
. Здесь надо учитывать, что иногда из одного пакета с исходниками собирается несколько бинарных. Указывать название пакета с исходниками. Параметр -t unstable
указывает, что взять нужно исходники версии из unstable
.
2. Скачать всё, что необходимо для сборки: apt-get build-dep название пакета
3. Перейти в каталог названиепакета-версия/
4. Поправить, что хочется, в исходниках. Отредактировать файл debian/changelog
(см. документацию, как описывать изменения). Описывать изменения и менять номер версии пакета нужно, чтобы потом самому отличать свои пакеты от дистрибутивных.
Дополненине: Для редактирования debian/changelog
можно воспользоваться dch
. Например, dch -l myname
создаст в changelog
запись для новой версии пакета, добавив myname
к номеру версии Debian.
5. Пересобрать пакет: fakeroot dpkg-buildpackage -us -uc
Дополнение:: Savagex в комментария заметил, что тот же результат можно получить с помощью dpkg-buildpackage -rfakeroot
.
На каталог выше должны появиться новые бинарные пакеты, готовые к установке.
Возможно, это не совсем идеологически верное описание и что-то важное я упустил (я не Debian-гуру). Кто знает лучше — пусть поправит. Однако такой способ вполне годится для личного использования.
Дополнение: анонимный читатель указал, что для пересборки пакета можно также воспользоваться программой pbuilder
, которая позволяет производить сборку в «чистом окружении» и не засорять систему зависимостями для сборки (см. этап получения build-dep). Соответственно, рекомендую две ссылки по теме: Как я собираю/бэкпорчу deb пакеты (GQ's blog) и о сборке пакетов Debian в русской Debian wiki.