Перекомпиляция пакета может понадобиться например, для упаковки более новой версии программы,
наложения определенного патча или пересборки с особенными опциями.Устанавливаем программы, необходимые для сборки пакетов:
apt-get install devscripts
apt-get install build-essential
В /etc/apt/sources.list раскомментируем строки с deb-src для нужного репозитория, например:
deb-src http://ftp.us.debian.org/debian/ etch main non-free contrib
Загружаем пакет с исходными текстами в текущую директорию:
apt-get source имя_пакета
Если под рукой уже есть .dsc, tar.gz и diff.gz файлы, раскрываем их командой:
dpkg-source -x имя_пакета.dsc
Устанавливаем зависимые пакеты (библиотеки, заголовочные файлы и т.д.), требуемые для сборки:
apt-get build-dep имя_пакета
Вносим изменения в появившейся директории "имя_пакета-версия".
Если собрались импортировать в пакет более новую версию программы, то воспользуемся утилитой uupdate:
uupdate -u путь_к_tar_gz_архиву_c_более_новой_версией_программы
При этом в автоматическом режиме будут адаптированы патчи от старой версии,
в случае несостыковок придется исправлять патчи руками.
Собираем пакет:
cd имя_пакета-версия
debuild -us -uc
"-us" и "-uc" указываем так как не являемся мантейнером пакета и не можем создать цифровую подпись для пакета.
Вместо враппера debuild можем напрямую использовать:
dpkg-buildpackage -rfakeroot
После сборки готовый пакет появится в родительской директории, устанавливаем его:
cd ..
dpkg -i <package_file.deb>
Пример для пакета с MySQL:
mkdir build
cd build
apt-get source mysql-server-5.0
apt-get build-dep mysql-server-5.0
cd mysql-dfsg-5.0-5.0.32
debuild -us -uc
cd ..
dpkg -i *.deb
URL: http://www.ducea.com/2008/03/06/howto-recompile-debian-packages/
Обсуждается: http://www.opennet.dev/tips/info/1615.shtml