APT HOWTO
Глава 6 - Робота з джерельними пакунками
6.1 Завантаження джерельних пакунків
Звичайною річчю в світі вільного програмного забезпечення є вивчення джерельного коду чи, навіть, внесення виправлень в помилковий код. Щоб здійснити це, вам потрібно завантажити джерельні коди програми. Система APT пропонує простий метод отримання джерельного коду багатьох програм, що містяться в дистрибутиві, включаючи всі файли, потрібні для створення .deb-пакунку програми.
Іншим загальноприйнятим використанням джерельних пакунків Debian є адаптація більш свіжих версій програм, наприклад, зі збірки unstable, для використання в stable. Компіляція пакунка в середовищі stable згенерує .deb-файл з залежностями, пристосованими до доступних в цій збірці пакунків.
Для досягнення цього, запис deb-src в вашому /etc/apt/sources.list повинен вказувати на unstable і бути дозволеним (розкоментованим). Див. Файл /etc/apt/sources.list.
Для завантаження джерельного пакунка скористайтесь такою командою:
$ apt-get source packagename
При цьому завантажується три файла: .orig.tar.gz, .dsc та .diff.gz. Для пакунків, створених спеціально для Debian, останнього файлу немає, а в назві першого зазвичай відсутня вставка orig.
Файл .dsc використовується програмою dpkg-source для розпаковування джерельного пакунка в теку назва_пакунка-версія. Кожен завантажений джерельний пакунок має теку debian/, в якій знаходяться необхідні для створення .deb-пакунка файли.
Щоб після завантаження пакунок автоматично збирався, просто додайте -b до командного рядка, ось так:
$ apt-get -b source packagename
Якщо ви вирішили не створювати .deb-файл одразу після завантаження, ви можете зробити це пізніше, виконавши команду
$ dpkg-buildpackage -rfakeroot -uc -b
в теці, створеній для пакунка після його завантаження. Щоб встановити пакунок, збудований за допомогою вказаної вище команди, потрібно скористатись менеджером пакунків напряму, наприклад:
# dpkg -i файл.deb
Існує відмінність між методом source та іншими методами apt-get. Метод source можуть використовувати звичайні користувачі, він не потребує спеціальних прав root. Файли завантажуються до теки, з якої викликається команда apt-get source package.
6.2 Пакунки, потрібні для компіляції джерельних пакунків
Зазвичай, для компіляції джерельного пакунка потрібні деякі заголовки та бібліотеки спільного користування. В усіх джерельних пакунках в файлі control є поле під назвою Build-Depends:, котре показує, які додаткові пакунки потрібні для збірки джерельного.
З APT ці пакунки можна завантажувати дуже просто. Просто запустіть apt-get build-dep package, де package — це назва пакунка, який ви хочете зібрати. Наприклад:
# apt-get build-dep gmc
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
comerr-dev e2fslibs-dev gdk-imlib-dev imlib-progs libgnome-dev libgnorba-dev
libgpmg1-dev
0 packages upgraded, 7 newly installed, 0 to remove and 1 not upgraded.
Need to get 1069kB of archives. After unpacking 3514kB will be used.
Do you want to continue? [Y/n]
Пакунки, що будуть встановлені, потрібні для коректної збірки gmc. Важливо відмітити, що ця команда не завантажує джерельний пакунок програми, котру ви маєте компілювати. Для цього потрібно окремо запустити apt-get source.
Якщо вашою метою є лише перевірка того, які пакунки потрібні для збірки даного пакунка, ви можете, як варіант, використати команду apt-cache show (див. Отримання інформації про пакунки), яка, серед іншої інформації, показує також список таких пакунків в рядку Build-Depends.
# apt-cache showsrc пакунок