Компилирование исходников и создание пакета в Debian/Ubuntu

Данная статья находится в стадии разработки

Какие бывают исходники?

Исходники (исходные тексты) бывают двух видов: исходники программы и исходники пакета.
В чем их отличие, я попытаюсь сейчас объяснить:
1.Сперва производитель пишет свою программу, подходящую под любую операционную систему (но бывают исключения), это и называется исходником программы.

2.Далее разработчики дистрибутивов готовят данный исходник к работе в данной операционной системе, делают изменения, патчи итд. Измененный исходник в данном случае будет называться исходником пакета, потому как готовый пропатченный исходник будет скомпилирован и упакован в пакет.


Как вы уже поняли, исходники пакетов это наилучший вариант, там уже всё налажено так, как надо.

Где взять исходники?

В такой системе, как Debian, исходники пакетов берутся таким образом

apt-get source имя_программы

В данном случае утилитка aptitude сама скачает исходник пакета и сохранит его в текущей директории

Если по каким то причинам исходник пакета получить не получилось или же он нам не подходит, то мы скачиваем исходник программы с сайта производителя

wget ссылка_на_исходник

Например

wget http://example.ru/ishodnik.tar.gz

В этом случае исходник тоже сохраняется в текущей директории

Компилирование

сперва нам нужно распаковать полученный архив

tar xzvf имя_архива

(если мы находимся в той же директории, в которую скачивали архив)

Далее переходим в папку, куда распаковали архив, посмотреть какая папка у нас создалась можно командой ls

cd имя_папки

Сейчас вводим заветное слово

./configure -параметры

Какие вводить параметры и как они работают можно узнать на сайте разработчика или в файле README в пакете с исходником
Далее, если у нас вывелись какие-то ошибки, то исправляем их (тут уже у каждого своё), и заново стартуем конфигуратор, как только в конце конфигурации нам не вывело не одной ошибки можем идти дальше

make

(Компилируем пакет)
Далее нам надо, то что мы накомпилировали собрать в пакет.

Чтобы наш исходник программы был хоть как то похож на исходник пакета, нужно воспользоваться утилиткой dh_make которая создаст каталог «debian» в каталоге с исходником, данный каталог созержит все данные о будущем пакете, но утилитка нам эти данные сделает «тестовыми», по идее пакет работать будет, но например в синаптике описание этого пакета будет чем то на подобии »<введите краткое описание пакета в 60 символов>», именно такие строки получаются в конфигах в директории debian, поэтому либо надо взять исходник ПАКЕТА с сайта дистрибутива и из папки Debian скопировать все что надо изменяя нужные строки. Подробнее об этом всем читайте в руководстве разработчка дебиан, ссылка на которое в конце статьи

dh_make


Сейчас нам нужно созбать пакет, делается это так

fakeroot debian/rules binary

Установка

Устеновить пакет можно такой командой

dpkg -i имя_пакета

Пример с комментариями

сперва мы скачиваем исходник программы

wget http://prdownloads.sourceforge.net/hplip/hplip-2.8.10.tar.gz

48df7e4044e7de1a849f90bada02b700.jpg

далее распаковываем архив

tar xzvf hplip-2.8.10.tar.gz



заходим в папку, где у нас содержимое архива после распаковки

cd hplip-2.8.10/



запускаем конфигуратор

./configure --with-hpppddir=/usr/share/ppd/hpijs/HP --prefix=/usr --disable-qt4 --enable-foomatic-ppd-install --enable-doc-build --enable-qt3 --enable-gui-build --disable-foomatic-drv-install --disable-pp-build --enable-network-build --enable-dbus-build --disable-hpijs-only-build --enable-scan-build --enable-fax-build



далее собираем пакет

make



Сейчас начинаем создавать пакет

 dh_make -e indeferend@uralweb.ru -s --createorig

А потом

fakeroot debian/rules binary

В конце проделанной работы я увидел такую строчку

dpkg-deb: сборка пакета hplip в файл ../hplip_2.8.10-1_i386.deb.

Следовательно пакет создался в директории выше, ну я наберу вот так:

sudo dpkg -i ../hplip_2.8.10-1_i386.deb

Благодарности

Благодарю Gall-a, за то что помогал мне на протяжении освоения данного материала, сам бы я долго еще разбирался и не мог понять что тут к чему)))

Копирайт

Рекомендуемая литература

http://www.debian.org/doc/maint-guide/ - руководство разработчика Debian


Персональные настройки
Яндекс цитирования