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 пакунок