Пересборка пакета для Debian

terminal

В Debian пересборка пакета выполняется достаточно легко. Допустим вы системный администратор и решили что вам нужно что-то поменять в исходном коде программы для получения доступа к отключенной возможности или правке критической ошибки, да много чего еще. Вот тут вам и поможет моя запись ;)

Итак, разберем пересборку пакета на примере squid3.

Перед тем как начать, убедитесь что у вас включены источники исходных кодов в /etc/apt/sources.list (это которые начинаются не на deb , а на deb-src). Эти источники дадут вам скачать исходные коды всех программ имеющихся в репозитории.

К примеру у вас запись будет:

Это значит, что у вас не будет исходных текстов squid3 — только уже готовые, собранные кем-то за вас пакеты.
Все что вам нужно — это добавить такую же строку следом, и изменить deb на deb-src. Получится вот так:

Сохраните ваш /etc/apt/sources.list и выполните

Скачиваем исходный код и зависимости для сборки

Мы добавили репозитории с исходными кодами и обновили свой список файлов. Теперь качаем squid3

После скачивания исходников самого squid3 нам нужно скачать зависимости для сборки пакета. То есть — те пакеты которые требуются для установки чтобы собрать наш пакет.

Эта команда установит пакеты требуемые для сборки — если, конечно, вы их не ставили до этого. Теперь мы можем приступать к модификации исходных кодов нужного нам пакета и пересборке.

Модификация и пересборка

В этой заметке мы включим http-violations в squid3. Переходим к исходникам которые мы скачали. Правим файл debian/rules — добавим туда опцию —enable-http-violations и сохраняем его.

Сборка

Перед самой сборкой, убедимся что у нас есть установленные devscripts.

Если установили, то возвращаемся в корень директории с исходными кодами и запускаем сборку.

Пересборка пакета запустится и вы увидите в терминале что-то вроде вот такого:

Пакет собран и будет находиться в родительской директории. Теперь нам его надо переустановить.

На этом всё. Удачи :)

Автор: Mirivlad

Скромный труженик консоли и окошек.

Комментарии: