APT HOWTO

Глава 2 - Базові налаштування


2.1 Файл /etc/apt/sources.list

Щоб забезпечити виконання однієї зі своїх задач, APT використовує список джерел, з котрих пакунки можуть бути завантажені. Це — файл /etc/apt/sources.list.

Зазвичай, записи в цьому файлі мають такий вигляд:

deb <http://host/debian> збірка розділ1 розділ2 розділ3
deb-src <http://host/debian> збірка розділ1 розділ2 розділ3

Звісно, наведені вище рядки є лише прикладом і не повинні використовуватись насправді. Перше слово кожного рядка, deb чи deb-src, вказує тип архіву: це або двійкові пакунки (deb), наперед-скомпільовані, які ми, як правило, і використовуємо, або джерельні пакунки (deb-src), котрі містять оригінали джерельних кодів програм і, додатково, керуючий файл Debian (.dsc) та diff.gz-архів з необхідними для „дебіанізації“ програми змінами.

Зазвичай, в стандартному файлі sources.list можна знайти такі рядки:

# See sources.list(5) for more information, especially
# Remember that you can only use http, ftp or file URIs
# CDROMs are managed through the apt-cdrom tool.
deb <http://http.us.debian.org/debian> stable main contrib non-free
deb <http://non-us.debian.org/debian-non-US> stable/non-US main contrib non-free
deb <http://security.debian.org> stable/updates main contrib non-free

# Uncomment if you want the apt-get source function to work
#deb-src <http://http.us.debian.org/debian> stable main contrib non-free
#deb-src <http://non-us.debian.org/debian-non-US> stable/non-US main contrib non-free

Ці рядки потрібні для базового встановлення Debian. Перший рядок deb вказує на офіційний архів пакунків, другий — на не-США архів, третій — на архів Debian, що призначений для оновлень безпеки.

Два останні рядки закоментовано (починаються з символу '#'), тому apt-get їх проігнорує. Ці deb-src рядки вказують на джерельні пакунки Debian. Якщо ви часто завантажуєте джерельні коди програм, з метою тестування або для рекомпіляції, просто розкоментуйте їх.

В файлі /etc/apt/sources.list можуть міститись декілька типів рядків. Наскільки мені відомо, APT вміє працювати з такими типами архівів як http, ftp, file (локальні файли; наприклад, тека з примонтованою файловою системою ISO9660) та ssh.

Не забудьте виконати apt-get update після внесення змін до файлу /etc/apt/sources.list. Це робиться для того, щоб змусити APT оновити списки пакунків з вказаних вами джерел.


2.2 Як використовувати APT локально

Інколи може виникнути ситуація, коли ви маєте купу пакунків .deb і хотіли б використати APT для їх встановлення, щоб залежності оброблялись автоматично.

Для цього вам потрібно створити теку та помістити в неї .deb-файли, які ви хочете проіндексувати. Наприклад:

# mkdir /root/debs

Для вашого сховища ви можете напряму змінити набір значень, вказаних в файлі control кожного з пакунків, використовуючи файл override. Всередині цього файлу ви, якщо хочете, можете визначити деякі опції, котрі перекриють відповідні значення з файлів пакунків. Це виглядає приблизно так:

package priority section

package — це назва пакунка, priority може набувати таких значень як low, medium чи high, а section — це назва розділу, в якому знаходиться відповідний пакунок. До назви файлу не ставиться жодних вимог, ви будете вказувати її пізніше в якості аргументу до dpkg-scanpackages. Якщо ви не хочете створювати файл override, тоді при запуску dpkg-scanpackages просто використовуйте /dev/null.

Далі, перебуваючи в теці /root, виконайте:

# dpkg-scanpackages debs file | gzip > debs/Packages.gz

У наведеному рядку слово file — це файл override. Команда генерує файл Packages.gz, котрий містить різноманітну інформацію про пакунки, яка буде використана APT. Нарешті, щоб почати використання пакунків, додайте:

deb file:/root debs/

Після всього цього, просто використовуйте APT, як звичайно. Ви можете створювати також і джерельні сховища. Для цього повторіть ті ж самі кроки, але пам'ятайте, що вам потрібно у відповідній теці мати файли .orig.tar.gz, .dsc та .diff.gz і замість Packages.gz генерувати файл Sources.gz. Для цього також використовується інша програма. Це — dpkg-scansources. Командний рядок повинен виглядати приблизно так

# dpkg-scansources debs | gzip > debs/Sources.gz

Зверніть увагу, що для dpkg-scansources не потрібен файл override. Рядок для sources.list виглядає так:

deb-src file:/root debs/

2.3 Визначення найкращого джерела для використання в файлі sources.list: netselect, netselect-apt

Дуже часто, переважно від нових користувачів, можна почути питання: „яке дзеркало Debian включати до sources.list?“. Існує багато методів визначення такого дзеркала. Експерти, ймовірно, мають скрипт, що вимірює та порівнює час відгуку від декількох джерел. Однак є програма, що зробить це і для нас: netselect.

Як звичайно, щоб встановити netselect:

# apt-get install netselect

При запуску її без параметрів відображається довідка. З списком дзеркал, розділених пробілами, вона поверне оцінку і один з вузлів. При визначенні цієї оцінки береться до уваги приблизний час відгуку, кількість „стрибків“ (вузлів, через які мережевий запит пройде перед тим, як потрапити до заданої цілі) та обернено пропорційна швидкість завантаження; отже, чим менше оцінка, тим краще. Програма повертає назву дзеркала, що має найнижчу оцінку (повний список оцінок можна побачити, додавши опцію -vv). Ознайомтесь з таким прикладом:

# netselect ftp.debian.org http.us.debian.org download.unesp.br ftp.debian.org.br
  365 ftp.debian.org.br

Це означає, що з дзеркал, вказаних в якості параметрів до netselect, найкращим виявилось ftp.debian.org.br з оцінкою 365. (Увага!! Оскільки команда виконувалась на моєму комп'ютері, а топографія мережі дуже сильно відрізняється в залежності від точки входу, ця цифра не обов'язково буде правильним значенням швидкості для інших машин).

Тепер просто помістіть найшвидше дзеркало, знайдене за допомогою netselect, у файл /etc/apt/sources.list (див. Файл /etc/apt/sources.list, розділ 2.1) та виконуйте наведені у відповідному розділі вказівки (див. Керування пакунками, Глава 3).

Зверніть увагу: список дзеркал завжди можна знайти в файлі http://www.debian.org/mirror/mirrors_full.

Починаючи з версії 0.3.ds1, джерельний пакунок netselect створює двійковий пакунок netselect-apt, котрий виконує всі наведені вище дії автоматично. Просто введіть гілку збірки в якості параметру (за замовчанням stable) і програма згенерує файл sources.list з найкращими загальними та не-США дзеркалами, після чого збереже його в поточній теці. Наступний приклад генерує sources.list для стабільної збірки:

# ls sources.list
ls: sources.list: File or directory not found
# netselect-apt stable
(...)
# ls -l sources.list
sources.list

Нагадуємо: файл sources.list генерується в поточній теці і його потрібно перемістити до теки /etc/apt.

Далі виконуйте вказівки наведені у відповідному розділі (див. Керування пакунками, Глава 3).


2.4 Додавання CD-ROM'у до файлу sources.list

У випадку, коли ви використовуєте переважно CD-ROM для встановлення пакунків чи оновлення вашої системи за допомогою APT, ви можете додати його до вашого sources.list. Для цього можна скористайтися програмою apt-cdrom приблизно так:

# apt-cdrom add

попередньо помістивши компакт-диск Debian до приводу. Ця команда підмонтує КД і, якщо це справжній компакт-диск Debian, оновить інформацію про пакунки, переглянувши його вміст. Якщо ваш КД дещо незвичної конфігурації, ви також можете використати такі опції:

-h           - Довідка програми
-d directory - Точка монтування CD-ROM'у
-r           - Змінити назву розпізнаного CD-ROM'у
-m           - Не монтувати
-f           - Швидкий режим, не перевіряти файли пакунків
-a           - Режим ретельного пошуку

Наприклад:

# apt-cdrom -d /home/kov/mycdrom add

Ви також можете ідентифікувати CD-ROM, не додаючи його до вашого списку:

# apt-cdrom ident

Зауважте, що ця програма працює лише в тому випадку, коли ваш КД зконфігуровано правильно і відповідний запис міститься в системному файлі /etc/fstab.