su13@pochta.ru

| Первый | Второй | Третий | Четвёртый | Пятый | Шестой | Седьмой |



[ назад ] [ Аннотация ] [ Заметка об авторских правах ] [ Содержание ] [ вперед ]

Debian GNU/Linux 2.2 для Intel x86 Руководство пользователя
Глава 11 apt - руководство пользователя


11.1 General

Пакет APT состоит из двух частей: метода APT программы dselect и утилиты apt-get с интерфейсом командной строки. Они позволяют устанавливать и удалять пакеты, так же как и загружать новые пакеты из Internet.


11.1.1 Структура системы управления пакетами.

Система пакетов Debian предусматривает наличие информации, ассоциированной с каждым пакетом, для корректной и простой интеграции его в систему Debian. Наиболее важна информация о зависимости пакета от других.

Система зависимостей позволяет отдельным программам использовать общие компоненты, такие, как библиотеки. Эти компоненты помещаются в отдельные пакеты, что существенно упрощает установку. Система пакетов позволяет также осуществить выбор из пакетов, выполняющих одинаковые функции, такие как MTA (mail transport agents, почтовый сервер), X-серверы и т.п.

Для понимания системы зависимостей важно вначале уяснить понятие простой зависимости. Простая зависимость означает, что один пакет требует установки другого для правильного функционирования.

Например, mail-crypt -- это расширение emacs, которое позволяет шифровать письма при помощи PGP. Без установленного пакета PGP установка mail-crypt бессмысленна и, таким образом пакет mail-crypt имеет простую зависимость от пакета PGP. Также, поскольку он есть расширение emacs extension, то имеет простую зависимость от emacs, без которого абсолютно бесполезен.

Другой важный вид зависимости -- конфликт. Мы говорим о конфликте, если пакет, установленный вместе с другим пакетом, не будет работать и может даже быть опасен для функционирования системы. В качестве примера можно указать на почтовые серверы (MTA), такие как sendmail, exim и qmail. Нельзя иметь в системе два одновременно установленных почтовых сервера, так как оба они будут одновременно следить за сетью для получения писем. Попытка установки двух MTA приведет к серьезным проблемам системы, а потому все почтовые серверы имеют зависимость типа конфликт с каждым из других MTA.

Осложняет положение дел возможность одного пакета "притворяться" другим. Например, exim и sendmail во многих отношениях идентичны, оба они доставляют письма, имеют общие интерфейсы. Потому система пакетов имеет возможность объявить оба как mail-transport-agents. Таким образом, и exim, и sendmail объявлены mail-transport-agent и другие пакеты, которым нужен MTA (почтовый сервер) зависят от mail-transport-agent. Это очень важное свойство системы пакетов, позволяющее избежать ручной правки пакетов и системы.

В любой момент времени отдельная зависимость может быть разрешена или не разрешена уже установленными пакетами. APT пробует разрешить зависимости при помощи разных алгоритмов, которые помогают выбрать пакеты для установки. for installation.


11.2 apt-get

apt-get предоставляет простой способ установки пакетов из командной строки. В отличие от dpkg, apt-get не работает напрямую с файлами .deb, а только с правильными именами пакетов и может устанавливать архивы .deb из заранее описанных Источников (Sources).

Первое [5] , что надо сделать перед использованием apt-get, -- это создать список пакетов из Источников, чтобы APT знал, какие пакеты доступны. Это делается при помощи apt-get update. Например,

     # apt-get update
     Get http://ftp.de.debian.org/debian-non-US/ stable/binary-i386/ Packages
     Get http://llug.sep.bnl.gov/debian/ frozen/contrib Packages
     Reading Package Lists... Done
     Building Dependency Tree... Done

После создания/актуализации списка, можно использовать несколько полезных команд.

upgrade
Upgrade (обновление) пробует осторожно обновить систему. Upgrade никогда не устанавливает новые пакеты и не удаляет существующие, эта операция даже не будет обновлять пакеты в том случае, если это вызовет проблемы у уже установленных. Эта операция может использоваться ежедневно для осторожного обновления системы. Upgrade создаст список всех пакетов, которые он не смог обновить, обычно из-за их зависимости от новых или конфликта с другими. Для форсированной установки таких пакетов используется Dselect или apt-get install .

install
Install (установка) используется для установки одного пакета с указанным именем. Пакет будет автоматически найден и установлен. Это полезно, если вы уже знаете имя нужного пакета и не хотите использовать экранный интерфейс для его выбора. В командной строке может быть указано любое количество пакетов, все они будут найдены. Install попробует автоматически разрешить зависимости пакетов из списка и выведет результат работы, а также обратиться за подтверждением, если в этом будет необходимость.

dist-upgrade
Dist-upgrade (обновление дистрибутива) позволяет провести полное полное дистрибутива на новую версию. Он использует оригинальный алгоритм определения лучшего набора пакетов для установки, обновления и удаления, чтобы максимально приблизить систему к новой версии. to the newest release. Во многих ситуациях предпочтительно использовать dist-upgrade раньше, чем требующий иногда ручного разрешения зависимостей dselect. После окончания работы dist-upgrade можно запустить dselect для установки других пакетов.

Очень важно внимательно ознакомится с работой dist-upgrade, его решения могут иногда быть весьма неожиданными.

apt-get имеет несколько опций, описанных подробно в его странице man, apt-get(8). Самой употребительной из них является -d, которая запрещает устанавливать найденные файлы. Если система загружает большое число пакетов, то может быть полезно вначале проверить, все ли будет верно сделано. После выполнения команды с -d, которая загрузит архивы, они могут быть установлены простым вызовом той же команды, но без -d.


11.3 DSelect

Метод APT программы dselect позволяет использовать одновременно экранный интерфейс выбора пакетов программы dselect и возможности APT. dselect iиспользуется для выбора устанавливаемых или удаляемых пакетов, а APT выполняет эту работу.

Для использования метода APT вам нужно выбрать [A]ccess в dselect и, затем, метод APT. Система предложит вам указать набор Источников, в которых будет производиться поиск архивов. Это могут быть удаленные сайты Internet, локальные зеркала Debian или диски CDROM. Каждый источник может быть фрагментом полного архива Debian, APT будет автоматически комбинировать их для создания полного комплекта пакетов. Если у вас есть CDROM, то будет правильно указать его первым, а затем указать зеркало для доступа к последним исправлениям. APT будет автоматически использовать пакеты на CDROM прежде, чем загружать их из Internet.

        Set up a list of distribution source locations
     	
      Please give the base URL of the debian distribution.
      The access schemes I know about are: http file
     	
      For example:
           file:/mnt/debian,
           ftp://ftp.debian.org/debian,
           http://ftp.de.debian.org/debian,
     
     
      URL [http://llug.sep.bnl.gov/debian]:

Настройка Источника начинается с вопроса об основном архиве Debian, по умолчанию зеркале HTTP. Далее следует вопрос о типе дистрибутива.

      Please give the distribution tag to get or a path to the
      package file ending in a /. The distribution
      tags are typically something like: stable unstable frozen non-US
     
      Distribution [stable]:

В архиве Debian версии разделены на stable, это последняя из вышедших версий, и unstable -- версию, находящуюся в разработке. Раздел non-US доступен на некоторых зеркалах и содержит пакеты, использующие технологии шифрования или другие, которые нельзя экспортировать из США. Их импорт в США, однако, разрешен.

      Please give the components to get
      The components are typically something like: main contrib non-free
     
      Components [main contrib non-free]:

Список компонентов содержит разделы дистрибутива, которые надо просматривать на определяемом Источнике. Дистрибутив разбит на основе лицензий пакетов. Раздел main содержит пакеты, удовлетворяющие критериям свободного ПО Debian (DFSG), в то время как contrib и non-free включают пакеты, имеющие ограничения по использованию. (non-free не входит в официальный дистрибутив Debian -- прим. перев.).

Может быть добавлено любое число источников, программа их настройки будет продолжать работу, пока вы не укажете все, которые считаете нужными.

Прежде чем начинать работать в dselect, необходимо модифицировать список пакетов, выбрав [U]pdate из меню. Эта команда вызовет apt-get update и сделает полученную им информацию доступной для dselect. [U]pdate необходимо запустить, даже если apt-get update уже был запущен ранее.

Теперь можно использовать dselect и сделать свой выбор при пакетов помощи [S]elect, а затем установить их, вызвав [I]nstall. При использовании метода APT, команды [C]onfig и [R]emove не имеют смысла, команда [I]nstall берет их функции на себя.

По умолчанию, APT будет автоматически удалять файлы с пакетами после их успешной установки. Если вы не желаете этого, -- поместите Dselect::clean "prompt"; в /etc/apt/apt.conf.


11.4 Интерфейсы

Обе части APT, как метод APT программы dselect, так и apt-get используют один и тот же интерфейс. Это простая в использовании система, которая спрашивает, что вам нужно, а затем идет и делает это. [6] Кроме вывода на экран отчета о событиях, APT печатает несколько информационных сообщений, чтобы вы могли оценить, как много сделано и что осталось сделать.


11.4.1 Подготовка к работе

Перед любой операцией, кроме update, APT осуществляет несколько операций по и подготовке. Он также производит ряд проверок состояния системы. В любое время эти операции могут быть выполнены, если запустить apt-get check

     # apt-get check
     Reading Package Lists... Done
     Building Dependancy Tree... Done

Первая операция осуществляет поиск всех пакетов в памяти. APT использует кэширующий алгоритм, так что эта операция длится не более секунды. Если некоторые из файлов с пакетами не найдены, то это будет игнорировано, но по окончании работы apt-get выдаст предупреждение.

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

     # apt-get check
     Reading Package Lists... Done
     Building Dependancy Tree... Done
     You might want to run apt-get -f install' to correct these.
     Sorry, but the following packages have unmet dependencies:
       9fonts: Depends: xlib6g but it is not installed
       uucp: Depends: mailx but it is not installed
       blast: Depends: xlib6g (>= 3.3-5) but it is not installed
       adduser: Depends: perl-base but it is not installed
       aumix: Depends: libgpmg1 but it is not installed
       debiandoc-sgml: Depends: sgml-base but it is not installed
       bash-builtins: Depends: bash (>= 2.01) but 2.0-3 is installed
       cthugha: Depends: svgalibg1 but it is not installed
                Depends: xlib6g (>= 3.3-5) but it is not installed
       libreadlineg2: Conflicts:libreadline2 (<< 2.1-2.1)

В этом примере система имеет много проблем, включая серьезную -- с libreadlineg2. Для каждого пакета с неразрешенными зависимостями печатается строка, сообщающая о наличии проблемы и описывающая неразрешенные зависимости. Предлагается также краткое описание причин, вызвавших проблему.

Есть две причины, по которым система может оказаться в разбалансированном состоянии, наподобие приведенного выше. Первая состоит в том, что dpkg пропустил несколько тонких связей между пакетами при обновлении. [7]. Вторая причина -- установка пакета была прервана до окончания этой операции. В этой ситуации пакет может быть распакован без разрешения зависимостей.

Вторая ситуация гораздо серьезнее первой, поскольку APT является последовательным в порядке установки пакетов. В обоих случаях применение опции -f к atp-get побуждает APT к поиску возможного решения проблема и продолжению работы. Метод APT из dselect всегда устанавливает опцию -f для разрешения продолжения работы при ошибке в скрипте ответственного за пакет.

Однако, если опция -f используется для исправления серьезно разбалансированной системы, то это может привести к немедленной ошибке программы или ошибке последовательности установки. В обоих случаях необходимо использовать dpkg (возможно, с форсирующими опциями) для разрешения ситуации настолько, чтобы APT смог продолжить работу.


11.4.2 Отчеты о состоянии дел

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


11.4.2.1 Список дополнительных пакетов

     The following extra packages will be installed:
       libdbd-mysql-perl xlib6 zlib1 xzx libreadline2 libdbd-msql-perl
       mailpgp xdpkg fileutils pinepgp zlib1g xlib6g perl-base
       bin86 libgdbm1 libgdbmg1 quake-lib gmp2 bcc xbuffy
       squake pgp-i python-base debmake ldso perl libreadlineg2
       ssh

Этот список показывает пакеты, которые были установлены или обновлены помимо указанных в командной строке. Он генерируется только командой install. Перечисленные пакеты почти всегда есть результат Auto Install.


11.4.2.2 Удаляемые пакеты

     The following packages will be REMOVED:
       xlib6-dev xpat2 tk40-dev xkeycaps xbattle xonix
       xdaliclock tk40 tk41 xforms0.86 ghostview xloadimage xcolorsel
       xadmin xboard perl-debug tkined xtetris libreadline2-dev perl-suid
       nas xpilot xfig

Этот список показывает пакеты, которые будут удалены из системы Он могут быть показаны при любой операции и нужно внимательно проследить, чтобы в нем не было ничего важного. Опция -f особенно часто порождает списки для удаления, так что в этой ситуации будьте особенно осторожны. Список может также содержать пакеты, которые были лишь частично удалены, возможно из-за прерванной установки.


11.4.2.3 Список новых пакетов

     The following NEW packages will installed:
       zlib1g xlib6g perl-base libgdbmg1 quake-lib gmp2 pgp-i python-base

Список новых пакетов просто напоминает о том, что должно произойти. Пакеты, перечисленные в нем, еще не установлены, но станут таковыми после завершения работы APT.


11.4.2.4 Список выбранных, но неустановленных пакетов (The Kept Back list)

     The following packages have been kept back
       compface man-db tetex-base msql libpaper svgalib1
       gs snmp arena lynx xpat2 groff xscreensaver

Всякий раз при обновлении системы в целом, сохраняется возможность ситуации, при которой новые версии пакетов не могут быть установлены, так как им нужны другие новые пакеты или они конфликтуют с имеющимися, которые не подлежат обновлению. В этом случае пакеты попадают в список выбранных, но неустановленных. Лучший способ избавиться от этого списка -- установить пакеты при помощи apt-get install или dselect.


11.4.2.5 Предупреждение о задержанных пакетах

     The following held packages will be changed:
       cvs

Иногда вы можете запросить у APT установку задержанного пакета, в этом случае он может напечатать предупреждение о том, что этот пакет будет изменен. Это может произойти только при dist-upgrade или install.


11.4.2.6 Заключительный отчет

Наконец, APT напечатает краткий отчет о предстоящих изменениях.

     206 packages upgraded, 8 newly installed, 23 to remove and 51 not upgraded.
     12 packages not fully installed or removed.
     Need to get 65.7M/66.7M of archives. After unpacking 26.5M will be used.

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

Некоторые другие отчеты могут быть созданы при использовании опции -u для показа обновляемых пакетов.


11.4.3 Вывод текущего состояния

При загрузке архивов и файлов с пакетами APT печатает несколько сообщений о текущем состоянии.

     # apt-get update
     Get:1 http://ftp.de.debian.org/debian-non-US/ stable/non-US/ Packages
     Get:2 http://llug.sep.bnl.gov/debian/ frozen/contrib Packages
     Hit http://llug.sep.bnl.gov/debian/ frozen/main Packages
     Get:4 http://ftp.de.debian.org/debian-non-US/ unstable/binary-i386/ Packages
     Get:5 http://llug.sep.bnl.gov/debian/ frozen/non-free Packages
     11% [5 frozen/non-free `Waiting for file' 0/32.1k 0%] 2203b/s 1m52s

Строки, начинающиеся с Get появляются когда APT начинает загружать файл, а последняя строка при этом показывает состояние этого процесса. Первое число с процентами в этой строке есть общий процент загруженных файлов. К сожалению, так как размер файла Package неизвестен, то apt-get update может определять общий процент загрузки не совсем верно.

Следующее поле строки состояния выводится один раз для каждой загрузки и показывает, что операция выполняется, а также немного другой полезной информации о том, что происходит. Иногда эту секцию называют Forking, что означает загрузку модуля OS. Первое число после [ указывает на число пакетов, которые будут взяты из текущего источника, оно появится потом в строке истории. Следующее слово -- краткое имя загружаемого объекта. Для архивов оно будет содержать имя загружаемого пакета.

Внутри одиночных кавычек находится информационная строка, показывающая состояние загрузки. Обычно она меняется от Connecting, Waiting for file до Downloading или Resuming. Последнее значение -- число байт, загруженных с удаленного сайта. Например, значение 102/10.2k показывает, что загружено 102 и 10.2 килобайт ожидается. Общий размер всегда показывается в 4 знака для экономии места. После него выводится процент загрузки текущего файла. Далее идут средняя скорость загрузки и ее прогнозируемое время, которые пересчитываются каждые 5 секунд.

Строка состояния обновляется каждые полсекунды, для возможности постоянного отслеживания процесса загрузки. Поэтому не имеет смысла помещать ее в системный журнал, используйте опцию -q для отмены строки состояния.


11.4.4 Dpkg

APT использует dpkg для установки архивов и переключается на интерфейс dpkg после завершения загрузки. dpkg будет задавать некоторые вопросы во время работы с пакетами, сами пакеты также могут задавать вопросы. Перед каждым вопросом обычно написано, кто его задает, а сами вопросы слишком разные, чтобы их здесь обсуждать.


[ назад ] [ Аннотация ] [ Заметка об авторских правах ] [ Содержание ] [ вперед ]
Debian GNU/Linux 2.2 для Intel x86 Руководство пользователя
Bruce Perens, Sven Rudolph, Igor Grobman, James Treacy, Adam Di Carlo, Josip Rodin, Bob Hilliard, Anne Bezemer, Jason Gunthorpe, Stéphane Bortzmeyer, Петр Новодворский debian-doc@lists.debian.org
GNU OCXE GNU LINUX
Hosted by uCoz