Краткое руководство по 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 и
/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
	...
Получено:1 http://aptosid.com sid Release.gpg [189B]
Получено:2 http://aptosid.com sid Release.gpg [189B]
Получено:3 http://aptosid.com sid Release.gpg [189B]
Получено:4 http://ftp.de.debian.org unstable Release.gpg [189B]
Получено:5 http://aptosid.com sid Release [34.1kB]
Получено:6 http://ftp.de.debian.org unstable Release [79.6kB]

Установка новых пакетов

Обновление пакетов и установкa новых пакетов без остановки X может вызвать проблемы. Любой метод установки пакетов в X имеет эту проблему.

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

Если у Вас есть сомнения по поводу обеспечения, Вы должны оставить X, согласно расстоянию обновления инструкции, прежде чем устанавливать какие-либо пакеты. Обновление установленной системы - dist-upgrade.

Предполагая, что пакет выбран, а база данных APT обновлена, следующей командой можно установить выбранный пакет (например pidgin):

# apt-get install pidgin
Чтение списков пакетов… Готово                                                                                                                 
Построение дерева зависимостей… Готово                                                                                                         
Будут установлены следующие дополнительные пакеты:                                                                                             
  gconf-service gconf2 gconf2-common gstreamer0.10-gconf gstreamer0.10-nice gstreamer0.10-plugins-bad gstreamer0.10-plugins-good               
  libavahi-glib1 libcdaudio1 libdv4 libfftw3-3 libflite1 libgconf-2-4 libgconf2-4 libgme0 libgnome-keyring-common libgnome-keyring0            
  libgssdp-1.0-3 libgstfarsight0.10-0 libgstreamer-plugins-bad0.10-0 libgtkspell0 libgupnp-1.0-4 libgupnp-igd-1.0-4 libiec61883-0              
  libmeanwhile1 libmimic0 libmms0 libnice10 libofa0 libopenal-data libopenal1 libpurple0 librsvg2-2 libslv2-9 libsoundtouch0
  libsoup-gnome2.4-1 libspandsp2 libwildmidi-config libwildmidi1 libzbar0 libzephyr4 pidgin-data
Предлагаемые пакеты:
  gconf-defaults-service frei0r-plugins libdv-bin oss-compat libfftw3-dev gnome-keyring tcl8.5 tk8.5 librsvg2-bin slv2-jack
  evolution-data-server
Рекомендуемые пакеты:
  gstreamer0.10-x ca-certificates libpurple-bin librsvg2-common freepats
НОВЫЕ пакеты, которые будут установлены:
  gconf-service gconf2 gconf2-common gstreamer0.10-gconf gstreamer0.10-nice gstreamer0.10-plugins-bad gstreamer0.10-plugins-good
  libavahi-glib1 libcdaudio1 libdv4 libfftw3-3 libflite1 libgconf-2-4 libgconf2-4 libgme0 libgnome-keyring-common libgnome-keyring0
  libgssdp-1.0-3 libgstfarsight0.10-0 libgstreamer-plugins-bad0.10-0 libgtkspell0 libgupnp-1.0-4 libgupnp-igd-1.0-4 libiec61883-0
  libmeanwhile1 libmimic0 libmms0 libnice10 libofa0 libopenal-data libopenal1 libpurple0 librsvg2-2 libslv2-9 libsoundtouch0
  libsoup-gnome2.4-1 libspandsp2 libwildmidi-config libwildmidi1 libzbar0 libzephyr4 pidgin pidgin-data
обновлено 0, установлено 43 новых пакетов, для удаления отмечено 0 пакетов, и 2 пакетов не обновлено.
Необходимо скачать 40,6 MБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 92,3 MB.
Хотите продолжить [Д/н]?

Удаление пакета

Не удивляйтесь, что при удалении пакета, все его зависимости (пакеты, от которых он зависит) останутся:

apt-get purge pidgin
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Пакеты, которые будут УДАЛЕНЫ:
  pidgin*
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 1 пакетов, и 2 пакетов не обновлено.
После данной операции, объём занятого дискового пространства уменьшится на 2 270 kB.
Хотите продолжить [Д/н]? y
(Чтение базы данных ... на данный момент установлено 92990 файлов и каталогов.)
Удаляется пакет pidgin ...
Вычищаются файлы настройки пакета pidgin ...
Обрабатываются триггеры для man-db ...
Обрабатываются триггеры для gconf2 ...
Обрабатываются триггеры для menu ...

В данном примере конфигурационный файл пакета 'pidgin' не удаляется из системы и будет использован для восстановления сохраненных настроек в случае повторной установки 'pidgin'. Для удаления из системы конфигурационных файлов вместе с выбранным пакетом используют следующую команду:

apt-get --purge remove pidgin
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Пакеты, которые будут УДАЛЕНЫ:
  pidgin*
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 1 пакетов, и 2 пакетов не обновлено.
После данной операции, объём занятого дискового пространства уменьшится на 2 270 kB.
Хотите продолжить [Д/н]? y
(Чтение базы данных ... на данный момент установлено 92990 файлов и каталогов.)
Удаляется пакет pidgin ...
Вычищаются файлы настройки пакета pidgin ...
Обрабатываются триггеры для man-db ...
Обрабатываются триггеры для gconf2 ...
Обрабатываются триггеры для menu ...

Обратите внимание на знак * в выводе apt, после имени пакета. Этот знак сообщает, что вместе с пакетом будут удалены его конфигурационные файлы.

Понижение версии пакета

Иногда в связи с ошибками, возникающими в актуальной версии того или иного пакета, возникает необходимость вернуться к его прежней, более ранней версии. Для этого необходимо выполнить следующие шаги:

Удерживание пакетов

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. comment <#>источники 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 - это полезный инструмент, который показывает, какие пакеты были автоматически или вручную установлены и предлагает системным администраторaм возможность отметить и удерживать пакеты, которые не удаляются автоматически. Прочитайте:

man apt-mark

Краткий обзор обновления установленной системы - dist-upgrade

Полное обновление системы осуществляется с помощью dist-upgrade. Пожалуйста, перед каждым обновлением знакомьтесь с существующими предупреждениями (Current Warnings) на главном сайте aptosid, а также с предупреждениями непосредственно обновляемых системой пакетов! В случае необходимости пакет нужно заморозить. Читайте в главе 'Понижение версии пакета'

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

Частота применения 'dist-upgrade'

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

После обновления базы данных APT следующей командой можно узнать: какие именно пакеты доступны к обновлению (для того сначала устанавливается пакет 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
Чтение списков пакетов...
Построение дерева зависимостей...
Чтение информации о состоянии...
Уже установлена самая новая версия gcc-4.0.
обновлено 0 , установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и xxx пакетов не обновлено.

Загрузка без установки.

Хорошая, но малоизвестная возможность проверить: какие пакеты затрагивает 'dist-upgrade', состоит в использовании флага -d:

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

Данную команду можно использовать даже в Х-сессии (в любом графическом эмуляторе терминала, таком как konsole), отложив 'dist-upgrade' в текстовом режиме на "потом". А заодно появляется возможность проверить предупреждения по загруженным пакетам с тем, чтобы принять обновление или отказаться.

apt-get dist-upgrade -d
Чтение списков пакетов...
Построение дерева зависимостей...
Чтение информации о состоянии...
Расчёт обновлений... Готово
НОВЫЕ пакеты, которые будут установлены:
  elinks-data
The following packages have been kept back:
  git-core git-gui git-svn gitk icedove libmpich1.0ldbl
Пакеты, которые будут обновлены:
  alsa-base bsdutils ceni configure-ndiswrapper debhelper
  discover1-data elinks file fuse-utils gnucash.........
обновлено 35, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 6 пакетов не обновлено.
Необходимо скачать 23,4 MБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 594КB.
Хотите продолжить [Д/н]?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
aptosid-manual-ru - the official Russian aptosid manual

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

$ apt-cache show aptosid-manual-ru
Package: aptosid-manual-ru
Priority: optional
Section: doc
Installed-Size: 2136
Maintainer: Kel Modderman kel@otaku42.de
Architecture: all
Source: aptosid-manual
Version: 01.78.2009.01.01-1
Depends: aptosid-manual-common
Pre-Depends: dpkg (>= 1.14.15)
Filename: pool/main/s/aptosid-manual/aptosid-manual-ru_01.78.2009.01.01-1_all.deb
Size: 818060
MD5sum: 966e148481dc112f03baf9a3cc6fff14
SHA1: e0216db010d8c21225ac8cb3025f76483ee8579b
SHA256: a2390bd6899790267357e732ad092e0012cc3628da66afbf3b96f6fd74f0ab71
Description: the official en aptosid manual
 This manual is divided into common sections, for example, .......

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

$ apt-cache policy aptosid-manual-ru
aptosid-manual-ru:
  Установлено: 01.78.2008.12.22-1
  Кандидат:01.78.2009.01.01-1 0
  Таблица версии:
     01.78.2009.01.01-1 0
        500 http://aptosid.com sid/main Packages

Полное описание системы APT может быть найдено в cправочникe по Debian.

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

Содержание, последний раз пересмотрено 31/12/2014 1540 UTC