Краткое руководство по 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 например:
- Прокомментируйте нестабильни источника (unstable) /etc/apt/sources.list.d/debian.list с помощью #
- Добавьте источник testing в /etc/apt/sources.list.d/debian.list , например:
deb http://ftp.nl.debian.org/debian/ testing main contrib non-free
-
apt-get update
-
apt-get install kmahjongg/testing
- Положите вновь установлен пакет на удерживаемость (hold):
echo kmahjongg hold|dpkg --set-selections
- comment <#>источники testing в / etc / apt / sources.list.d / debian.list и раскомментируйте источники unstable чтобы Вы вновь могли использовать источники unstable:
-
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
## 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
Если Вы не перейдёте на 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..