Короткий посібник з apt

Що значить APT?

APT - скорочення від англійського Advanced Packaging Tool і по суті є набором скриптів і програм, який полегшуює системному адміністраторові (у Вашому випадку це root) установку і видалення програмного забезпечення у вигляді пакетів Debian, автоматично реєструючи зроблені зміни в системі, а також зміни в залежностях.

Список ресурсів (sources.list)

APT-система потребує файлі конфігурації, який містить інформацію про розташування встановлюваних і оновлюваних пакетів. Загалом називається цей файл sources.list.

Джерела знаходяться в цьому каталозі:
/etc/apt/sources.list.d/

У цьому каталозі знаходяться 2 файли:
/etc/apt/sources.list.d/debian.list and
/etc/apt/sources.list.d/aptosid.list

Це має ту перевагу, що можна легше вибрати бажане дзеркало (mirror switching) і в тому числі легше зробити додавання або заміну джерела списку.

Ви також можете додати свої власні файли списка в /etc/apt/sources.list.d/*.list

Всі aptosid ISO-образи використовують наступні джерела за замовчуванням:

#aptosid
# Free University Berlin/ spline (Student Project LInux NEtwork), Germany
deb ftp://ftp.spline.de/pub/aptosid/debian/ sid main fix.main
#deb-src ftp://ftp.spline.de/pub/aptosid/debian/ sid main fix.main

Відомості щодо включення джерел невільного ПЗ містяться у нашому регулярно оновлюваному source.list за адресою aptosid.list та debian.list:

#Debian
# Unstable
deb http://ftp.us.debian.org/debian/ unstable main contrib non-free
#deb-src http://ftp.us.debian.org/debian/ unstable main contrib non-free

# Testing
#deb http://ftp.us.debian.org/debian/ testing main contrib non-free
#deb-src http://ftp.us.debian.org/debian/ testing main contrib non-free

# Experimental
#deb http://ftp.us.debian.org/debian/ experimental main contrib non-free
#deb-src http://ftp.us.debian.org/debian/ experimental main contrib non-free

ПРИМІТКА: У цьому прикладі використовуються німецькі репозиторії. Ви можете відредагувати цей файл на власний розсуд, вибравши найбільш близькі до Вас репозиторії (просто замінивши позначення країни, наприклад ftp.de на ftp.ru). У багатьох країнах існують локальні сховища. При цьому ширина каналу залишається фіксованою, а швидкість зростає .

Список серверів Debian і поточний стан дзеркал.

Для підтримки інформації про доступні пакетах в актуальному стані APT використовує власну базу даних. У ній, крім інформації про самих пакетах, міститься інформація про необхідні для установки і роботи додаткових пакетах (т.зв. залежності). При установці обраного пакета apt-get використовує цю базу даних для установки також і всіх необхідних для задоволення залежностей пакетів, гарантуючи тим самим працездатність обраного Вами. Оновлення даної БД здійснюється за допомогою 'apt-get update' .

# apt-get update
	(which returns )
Get:1 http://aptosid.com sid Release.gpg [189B]
Get:2 http://aptosid.com sid Release.gpg [189B]
Get:3 http://aptosid.com sid Release.gpg [189B]
Get:4 http://ftp.de.debian.org unstable Release.gpg [189B]
Get:5 http://aptosid.com sid Release [34.1kB]
Get:6 http://ftp.de.debian.org unstable Release [79.6kB]

Встановлення нових пакетів

Оновлення пакетів і встановлення нових пакетів без зупинки X може викликати проблеми. Будь-який метод установки пакетів в X має цю проблему.

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

Якщо у вас є сумніви про забезпечення, Ви повинні залишити X згідно відстані поновлення інструкції перш ніж встановлювати будь-які пакети. Оновлення установленої системи - dist-upgrade.

Припускаючи, що пакет обраний, а база даних APT оновлена​​, наступною командою можна встановити вибраний пакет (наприклад gaim).

# apt-get install qemu
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
  bochsbios openhackware proll vgabios
Recommended packages:
  debootstrap vde
The following NEW packages will be installed:
  bochsbios openhackware proll qemu vgabios
0 upgraded, 5 newly installed, 0 to remove and 20 not upgraded.
Need to get 4152kB of archives.
After unpacking 11.9MB of additional disk space will be used.
Do you want to continue [Y/n]? n

Видалення пакета

Не дивуйтеся що при видаленні пакета, всі його залежності (пакети від яких він залежить) залишаться:

apt-get remove gaim
Reading package lists... Done
Building dependency tree... Done
The following packages will be REMOVED:
  gaim gaim-irchelper
0 upgraded, 0 newly installed, 2 to remove and 310 not upgraded.
Need to get 0B of archives.
After unpacking 4743kB disk space will be freed.
Do you want to continue [Y/n]?
(Reading database ... 174409 files and directories currently installed.)
Removing gaim-irchelper ...
Removing gaim ...

Якщо Ви хочете також видалити конфігураційні файли пакету,виконайте наступну команду:

apt-get --purge remove gaim
Reading package lists... Done
Building dependency tree... Done
The following packages will be REMOVED:
  gaim*
0 upgraded, 0 newly installed, 1 to remove and 309 not upgraded.
Need to get 0B of archives.
After unpacking 4678kB disk space will be freed.
Do you want to continue [Y/n]? Y
(Reading database ... 174405 files and directories currently installed.)
Removing gaim ...
Purging configuration files for gaim ...

Зверніть увагу на* після імені пакета. Цей знак повідомляє, що разом з пакетом будуть видалені конфігураційні файли.

Зниження версії пакету

Іноді в зв'язку з помилками, що виникають в актуальній версії того чи іншого пакета, виникає необхідність повернутися до його колишньої, більш ранньої версії. Для цього необхідно виконати наступні кроки.

Утримання пакетів

echo package hold|dpkg --set-selections

Так утримуються пакети (hold)

echo package install|dpkg --set-selections

Пошук утримуваних пакетів:

dpkg --get-selections | grep hold

Пeрехід на знижені версії пакетів

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

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

  1. Закоментуйте нестабильні джерела (unstable) в /etc/apt/sources.list.d/debian.list за допомогою #
  2. Додайте джерело testing в/etc/apt/sources.list.d/debian.list , наприклад:
    deb http://ftp.nl.debian.org/debian/ testing main contrib non-free
    
  3. apt-get update
    
  4. apt-get install kmahjongg/testing
    
  5. Покладіть знову встановлений пакет на утримання (hold):
    echo kmahjongg hold|dpkg --set-selections
    
  6. Закоментуйте <#>джерела testing в /etc/apt/sources.list.d/debian.list та розкоментуйте джерела unstable щоб Ви потім знову мали можливість використовувати джерела unstable:
  7. apt-get update
    

Для установки останньої версії пакету досить виконати:

echo kmahjongg install|dpkg --set-selections
apt-get update
apt-get install kmahjongg

apt-mark

apt-mark is a useful tool that shows you which packages are automatically or manually installed and offers the system administrator the opportunity to mark and hold packages that are not to be removed automatically. Read:

man apt-mark

Короткий огляд поновлення встановленої системи - dist-upgrade

Повне оновлення системи здійснюється з dist-upgrade. Будь ласка перед кожним оновленням ознайомтеся з існуючими попередженнями (Current Warnings) на головному сайті aptosid а також з попередженнями щодо безпосередньо оновлюваних системою пакетів! У разі необхідності пакет потрібно hold "заморозити". Читайте Зниження версії пакету та утримання пакету

Зауваження: Просто 'upgrade' в debian-sid використовувати не рекомендується.

Частота застосування 'dist-upgrade'

Рекомендується здійснювати 'dist-upgrade' хоча б 1 раз на місяць, в ідеалі-раз в одну, дві неделі.Прі більш рідкісною оновленні системи (раз на 2-3 місяці) не виключено виникнення різних проблем. Особливу увагу при оновленні необхідно приділяти нестандартним і "самозібраним" пакетам у зв'язку з можливими порушеннями залежностей.

Після оновлення бази даних APT наступною командою можна дізнатися які саме пакети доступні до оновлення apt-get updateдля того спочатку встановлюється пакет apt-show-versions:

apt-show-versions -u
libpam-runtime/unstable upgradeable from 0.79-1 to 0.79-3
passwd/unstable upgradeable from 1:4.0.12-5 to 1:4.0.12-6
teclasat/unstable upgradeable from 0.7m02-1 to 0.7n01-1
libpam-modules/unstable upgradeable from 0.79-1 to 0.79-3.........

Оновлення одиничного пакета разом з залежностями (наприклад gcc-4.0) можливо наступною командою:

apt-get install gcc-4.0
Reading package lists... Done
Building dependency tree... Done
gcc-4.0 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and xxx not upgraded

Завантаження без установки

Гарна, але маловідома можливість перевірити які пакунки зачіпає 'dist-upgrade' полягає у використанні прапора-d:

apt-get update && apt-get dist-upgrade -d

Дану команду можна використовувати навіть в Х-сесії (у будь-якому графічному емуляторі терміналу, такому як konsole), відклавши 'dist-upgrade' в текстовому режимі на "потім". А заодно з'являється можливість перевірити попередження по завантажених пакетам з тим, щоб прийняти оновлення або відмовитися:

apt-get dist-upgrade -d
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
  elinks-data
The following packages have been kept back:
  git-core git-gui git-svn gitk icedove libmpich1.0ldbl
The following packages will be upgraded:
  alsa-base bsdutils ceni configure-ndiswrapper debhelper
  discover1-data elinks file fuse-utils gnucash.........
35 upgraded, 1 newly installed, 0 to remove and 6 not upgraded.
Need to get 23.4MB of archives.
After this operation, 594kB of additional disk space will be used.
Do you want to continue [Y/n]?Y 

Нажміть клавішуY для завантаження пакетів.

Після закінчення виконання 'dist-upgrade-d', збираючись завершити dist-upgrade негайно або коли-небудь пізніше, дотримуйтесь наведеної нижче інструкції:

Кроки виконання dist-upgrade

НІКОЛИ не виконуйте ніякий dist-upgrade або upgrade, не зупинивши сервер Х
Завжди попередньо ознайомтеся з попередженнями по оновлень на головному сайті aptosid. Ці попередження розміщуються через нестабільність і щоденних оновлень!.
## Log out of KDE.  
## Go to Textmode by doing Ctrl+Alt+F1
## logon as root, and then type:
service kdm stop  ##If using another window manager replace kdm, for example with gdm
apt-get update
apt-get dist-upgrade
apt-get clean
service kdm start ##If using another window manager replace kdm, for example with gdm
НІКОЛИ не виконуйте команди "dist-upgrade" або "upgrade" в графічному інтерфейсі X, а також за допомогою програм adept, synaptic або aptitude:

Якщо Ви не підете на init-level 3 (режим текстової консолі), щоб щось робити, ми Вас попередили!

Причини використання тільки 'apt-get' для 'dist-upgrade'

Пакетні менеджери типу adept, aptitude, synaptic і kpackage не завжди здатні врахувати величезну кількість змін, що відбуваються в Sid (зміни залежностей, назв, настановних скриптів і т.д. ...).

Не варто думати, що це відбувається в результаті помилок розробників цих програм. Вони створюють прекрасний інструментарій, чудово працює в стабільній гілці debian, але просто не адаптований для дуже специфічних вимог Debian Sid.

Для пошуку й отримання інформації про пакети ви як і раніше можете використовувати все, що вам подобається, але операції по установці, видалення та 'dist-upgrade' здійснюйте тільки з використанням 'apt-get'!

Пакетні менеджери, типу adept, aptitude, synaptic і kpackage (при комплексному виборі пакетів), змішують навіть такі швидко змінюються посилання як в sid та посилання зовнішніх репозиторіїв, вельми сумнівної якості (ми не використовуємо і не рекомендуємо такі, але вони цілком ймовірно можуть бути присутніми на користувацьких системах), що майже напевно призведе до аварійних збоїв системи надалі.

Ще одна проблема полягає в тому, що даний тип графічних пакетних менеджерів потребує для своєї роботи в X; здійснення ж 'dist-upgrade' (або навіть не рекомендованого 'upgrade') в цих режимах в комплексі із зазначеними вище причинами призведе безсумнівно до краху системи в майбутньому, може не сьогодні і не завтра, але колись - однозначно.

З іншого боку 'apt-get' строго виконує зазначені інструкції, зберігаючи можливість для адміністратора втрутитися і виправити те, що необхідно (якщо, наприклад, 'apt-get' збирається видалити половину системи, Ви, як адміністратор своєї системи, можете уважно ознайомитися з причинами, перш ніж прийняти остаточне рішення).

Це цілком достатній перелік причин для використання 'apt-get "замість чогось іншого. (і не дуже велика жертва-відмову від графічних пакет-менеджерів - для того хто хоче користуватися свіжим, а значить не дуже стабільним, але містить всі новітні можливості, софтом. - прим. перекладача)

Пошук інформації про пакет

Ще одна дуже зручна команда з системи APT-apt-cache; з її допомогою здійснюється пошук і відображення інформації про пакет в APT-Database; наприклад перелік усіх пакетів, що містять у назві "aptosid" і "manual" можна отримати таким способом:

$ apt-cache search aptosid manual
.......
aptosid-manual-common - the official aptosid manual - common files
aptosid-manual-es - the official Spanish aptosid manual
aptosid-manual-de - the official German aptosid manual
aptosid-manual-el - the official Greek aptosid manual
aptosid-manual - the official aptosid manual - all languages
aptosid-manual-pt-br - the official Brazilian Portuguese aptosid manual
aptosid-manual-en - the official English aptosid manual
aptosid-manual-reader - aptosid manual reader

Розширена інформація про конкретний пакеті доступна після виконання:

$ apt-cache show aptosid-manual-en
Package: aptosid-manual-en
Priority: optional
Section: doc
Installed-Size: 1088
Maintainer: Kel Modderman <kel@otaku42.de>
Architecture: all
Source: aptosid-manual
Version: 01.12.2007.06.03-1
Depends: aptosid-manual-common
Filename: pool/main/s/aptosid-manual/aptosid-manual-en_00.00.2010.08.14-1_all.deb
Size: 391222
MD5sum: 60f2175c3c5709745a4b4256ccc3c49d
SHA1: e275a0b27628b6aa210a4ced48d3646b438e78b8
SHA256: 2792580c7a091521301064180a1d0d8901f0a4af407b90432b9f8d8b6b3603ca
Description: the official en aptosid manual
 This manual is divided into common sections, for example, .......

Всі доступні версії пакета (їх перелік залежить від вмісту sources.list) отримуємо так:

$ apt-cache policy aptosid-manual-xx
aptosid-manual-xx:
  Installed: (none)
  Candidate: (none)
  Version table:
        500 http://aptosid.net sid/main Packages

Повний опис системи APT може бути знайдено в довіднику з Debian

Повний опис системи APT можна знайти в APT-HOWTO Debian

Сторінка останний раз переглянута 31/12/2014 1540 UTC