APT HOWTO

Глава 4 - Дуже корисні помічники


4.1 Як встановлювати локально cкомпільовані пакунки: equivs

Іноді людина хоче використовувати специфічну версію програми, доступну лише у вигляді джерельних кодів, а не пакунку Debian. Але пакункова система може стати для цього певною перешкодою. Припустимо, ви хочете скомпілювати нову версію вашого серверу електронної пошти. Все б чудово, але багато пакунків в Debian залежать від MTA (Mail Transport Agent). Однак, оскільки ви встановили дещо самостійно вами скомпільоване, система керування пакунками не знатиме про його існування.

І тут на сцену виходить equivs. Щоб скористатись ним, встановіть однойменний пакунок. Equivs створює порожній пакунок з повним набором залежностей; робить так, щоб у системи керування пакунками склалось враження, що всі залежності задовольняються.

Перед тим, як ми почнемо, непогано було б нагадати вам, що є і більш безпечні шляхи компіляції з різноманітними параметрами тих програм, для котрих вже існують пакунки Debian, і що не потрібно використовувати equivs для заміни залежностей, якщо ви не не впевнені в тому, що робите. Щоб дізнатись більше перегляньте Робота з джерельними пакунками.

Отже, повернемось до нашого прикладу з MTA. Ви щойно встановили ваш наново скомпільований postfix і переходите до встановлення mutt. Раптом виявляється, що mutt вимагає встановити інший MTA. Але у вас вже є ваш власний.

Перейдіть до якоїсь теки (наприклад, /tmp) і запустіть:

# equivs-control name

Замініть name на назву керуючого файлу, який ви хочете створити. Він буде мати такий вигляд:

Section: misc
Priority: optional
Standards-Version: 3.0.1

Package: <enter package name; defaults to equivs-dummy>
Version: <enter version here; defaults to 1.0>
Maintainer: <your name and email address; defaults to username>
Pre-Depends: <packages>
Depends: <packages>
Recommends: <packages>
Suggests: <package>
Provides: <(virtual)package>
Architecture: all
Copyright: <copyright file; defaults to GPL2>
Changelog: <changelog file; defaults to a generic changelog>
Readme: <README.Debian file; defaults to a generic one>
Extra-Files: <additional files for the doc directory, comma-separated>
Description: <short description; defaults to some wise words>
 long description and info
 .
 second paragraph

Нам просто потрібно привести його до потрібного нам вигляду. Погляньмо на формат полів і їх описи. Очевидно, нема потреби пояснювати кожне з них окремо, давайте просто зробимо те, що потрібно:

Section: misc
Priority: optional
Standards-Version: 3.0.1

Package: mta-local
Provides: mail-transport-agent

Так, це все. mutt залежить від віртуального пакунка mail-transport-agent, котрий забезпечується будь-яким MTA, я міг би просто назвати пакунок mail-transport-agent, однак вважаю за краще використовувати схему віртуальних пакунків за допомогою Provides.

Тепер треба просто зібрати пакунок:

# equivs-build name
dh_testdir
touch build-stamp
dh_testdir
dh_testroot
dh_clean -k
# Add here commands to install the package into debian/tmp.
touch install-stamp
dh_testdir
dh_testroot
dh_installdocs
dh_installchangelogs
dh_compress
dh_fixperms
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dpkg-deb: building package `name' in `../name_1.0_all.deb'.

The package has been created.
Attention, the package has been created in the current directory,

І встановити отриманий .deb-файл.

Як видно, equivs можна застосовувати по-різному. Наприклад, можна створити пакунок my-favorites, що залежить від програм, які ви зазвичай встановлюєте. Просто звільніть вашу уяву, але будьте обережними.

Важливо відзначити, що в теці /usr/share/doc/equivs/examples знаходяться приклади файлів control. Перевірте їх.


4.2 Видалення зайвих файлів локалей: localepurge

Багато користувачів Debian використовують тільки одну локаль. Наприклад, бразильський користувач зазвичай завжди використовує локаль pt_BR і не цікавиться локаллю es.

localepurge для таких користувачів є вельми корисним інструментом. Ви можете звільнити багато дискового простору, використовуючи лише ті локалі, котрі вам насправді потрібні. Просто виконайте apt-get install localepurge.

Налаштування є дуже простим, питання debconf допоможуть користувачеві здійснити його покроково. Будьте дуже обережними, відповідаючи на перше запитання, бо неправильна відповідь може видалити всі файли локалей, навіть тих, котрі ви використовуєте. Єдиним шляхом до відновлення цих файлів буде перевстановлення всіх пакунків, що їх забезпечують.


4.3 Як дізнатись, які пакунки можуть бути оновлені

Програма apt-show-versions показує, які пакунки в системі можуть бути оновленими та деяку корисну інформацію. Параметр -u виводить список пакунків, котрі можуть бути оновлені:

$ apt-show-versions -u    
libeel0/unstable upgradeable from 1.0.2-5 to 1.0.2-7
libeel-data/unstable upgradeable from 1.0.2-5 to 1.0.2-7