[ назад ] [ Содержание ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ вперед ]


APT HOWTO (Obsolete Documentation)
Глава 5 - Получение информации о пакетах.


Для системы APT существует несколько оболочек, которые значительно упрощают просмотр пакетов, которые доступны для установки или уже установлены, а также для поиска разделов, приоритетов, описания пакетов и т.д.

Но... наша цель состоит в изучении самого APT. Так как же найти имя пакета, который вам надо установить?

Для такой задачи мы располагаем несколькими ресурсами. Начнем с apt-cache. Эта программа используется системой APT для управления ее базами данных. Мы только вкратце оглядим ее более практические приложения.


5.1 Нахождение имен пакетов

Например, допустим, что вы хотите вспомнить старые добрые денечки Atari 2600. Вы хотите использовать APT для установки эмулятора Atari и скачивания некоторых игр. Можете сделать так:

     [root]@[/] # apt-cache search atari
     atari-fdisk-cross - Partition editor for Atari (running on non-Atari)
     circuslinux - The clowns are trying to pop balloons to score points!
     madbomber - A Kaboom! clone
     tcs - Character set translator.
     atari800 - Atari emulator for svgalib/X/curses
     stella - Atari 2600 Emulator for X windows
     xmess-x - X binaries for Multi-Emulator Super System

Мы нашли несколько пакетов, имеющих отношение к тому, что нам требуется, вместе с краткими описаниями. Чтобы посмотреть более полные описания, можно дать команду:

     [root]@[/] # apt-cache show stella  
     Package: stella
     Priority: extra
     Section: non-free/otherosfs
     Installed-Size: 830
     Maintainer: Tom Lear <tom@trap.mtview.ca.us>
     Architecture: i386
     Version: 1.1-2
     Depends: libc6 (>= 2.1), libstdc++2.10, xlib6g (>= 3.3.5-1)
     Filename: dists/potato/non-free/binary-i386/otherosfs/stella_1.1-2.deb
     Size: 483430
     MD5sum: 11b3e86a41a60fa1c4b334dd96c1d4b5
     Description: Atari 2600 Emulator for X windows
      Stella - это portable emulator of the old Atari 2600 video-game console
      written in C++.  You can play most Atari 2600 games with it.  The latest
      news, code and binaries for Stella can be found at:
      http://www4.ncsu.edu/~bwmott/2600

В этом выводе мы получили множество сведений о пакете, который вы хотите (или не хотите) установить, вместе с полным описанием пакета. Если пакет уже установлен в системе или есть более новая версия, то вы увидите информацию об обоих версиях. Например:

     [root]@[/] # apt-cache show lilo
     Package: lilo
     Priority: important
     Section: base
     Installed-Size: 271
     Maintainer: Russell Coker <russell@coker.com.au>
     Architecture: i386
     Version: 1:21.7-3
     Depends: libc6 (>= 2.2.1-2), debconf (>=0.2.26), logrotate
     Suggests: lilo-doc
     Conflicts: manpages (<<1.29-3)
     Filename: pool/main/l/lilo/lilo_21.7-3_i386.deb
     Size: 143052
     MD5sum: 63fe29b5317fe34ed8ec3ae955f8270e
     Description: LInux LOader - The Classic OS loader can load Linux and others
      This Package contains lilo (the installer) and boot-record-images to
      install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
      .
      You can use Lilo to manage your Master Boot Record (with a simple text screen)
      or call Lilo from other Boot-Loaders to jump-start the Linux kernel.
     
     Package: lilo
     Status: install ok installed
     Priority: important
     Section: base
     Installed-Size: 190
     Maintainer: Vincent Renardias <vincent@debian.org>
     Version: 1:21.4.3-2
     Depends: libc6 (>= 2.1.2)
     Recommends: mbr
     Suggests: lilo-doc
     Description: LInux LOader - The Classic OS loader can load Linux and others
      This Package contains lilo (the installer) and boot-record-images to
      install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
      .
      You can use Lilo to manage your Master Boot Record (with a simple text screen)
      or call Lilo from other Boot-Loaders to jump-start the Linux kernel.

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

     [root]@[/] # apt-cache showpkg penguin-command
     Package: penguin-command
     Versions: 
     1.4.5-1(/var/lib/apt/lists/download.sourceforge.net_debian_dists_unstable_main_binary-i386_Packages)(/var/lib/dpkg/status)
     
     Reverse Depends: 
     Dependencies: 
     1.4.5-1 - libc6 (2 2.2.1-2) libpng2 (0 (null)) libsdl-mixer1.1 (2 1.1.0) libsdl1.1 (0 (null)) zlib1g (2 1:1.1.3) 
     Provides: 
     1.4.5-1 - 
     Reverse Provides:

А чтобы посмотреть только его зависимости:

     [root]@[/] # apt-cache depends penguin-command
     penguin-command
       Depends: libc6
       Depends: libpng2
       Depends: libsdl-mixer1.1
       Depends: libsdl1.1
       Depends: zlib1g

В общем, мы имеем полный арсенал для поиска имен нужных нам пакетов.


5.2 Применение dpkg для поиска имен пакетов

Один из способов найти имя пакета - знать имя какого-либо важного файла, находящегося в этом пакете. Например, чтобы найти пакет, которому принадлежит некий файл ".h", нужный вам для компиляции, может запустить:

     [root]@[/] # dpkg -S stdio.h
     libc6-dev: /usr/include/stdio.h
     libc6-dev: /usr/include/bits/stdio.h
     perl: /usr/lib/perl/5.6.0/CORE/nostdio.h

или:

     [root]@[/] # dpkg -S /usr/include/stdio.h
     libc6-dev: /usr/include/stdio.h

Чтобы найти имя пакета, установленного в вашей системе, что полезно, например, если вы планируете почистить место на диске, дайте команду:

     [root]@[/] # dpkg -l | grep mozilla
     ii  mozilla-browse 0.9.6-7        Mozilla Web Browser

Проблема этой команды в том, что она может "испортить" имя пакета. В примере выше, полное имя пакета mozilla-browser. Чтобы это исправить, вы можете изменить значение переменной окружения COLUMNS:

     [kov]@[couve] $ COLUMNS=132 dpkg -l | grep mozilla
     ii  mozilla-browser             0.9.6-7                     Mozilla Web Browser - core and browser

или использовать описание или часть его следующим образом:

     [root]@[/] # apt-cache search "Mozilla Web Browser"
     mozilla-browser - Mozilla Web Browser

5.3 Установка пакетов "по запросу"

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

Для этого, в основном, запустите:

     auto-apt run command

Где `command' - это команда, при выполнении которой может обнаружиться отстутствие некоего файла. Например:

     auto-apt run ./configure

Она запросит установку необходимых пакетов и вызовет apt-get автоматически. Если вы работаете в X, то графический интерфейс будет по умолчанию заменен на текстовый.

Auto-apt сохраняет базы данных в обновленном состоянии, чтобы быть более эффективной. Это достигается вызовом команд auto-apt update, auto-apt updatedb и auto-apt update-local.


5.4 Как определить, какому пакету принадлежит файл

Если вы хотите установить пакет и не можете найти его название с помощью apt-cache, но знаете имя программы этого пакета или имя любого другого файла из этого пакета, то для поиска имени пакета вы можете воспользоваться программой apt-file. Используется она примерно так:

     $ apt-file search имя-файла

Работает она примерно также как и dpkg -S, но будет показывать также и неустановленные пакеты, которые содержат указанный файл. Команда может применяться также для поиска заголовочных файлов, которые могут потребоваться при компиляции программ, хотя auto-apt в данном случае более хорош, см. Установка пакетов "по запросу", раздел 5.3.

Также вы может посмотреть список файлов в пакете командой:

     $ apt-file list имя-пакета

apt-file хранит базу данных, в которой отслеживает какие файлы содержат пакеты также, как это делает auto-apt и ему нужно ее обновлять. Это делается так:

     # apt-file update

По умолчанию, apt-file использует базу данных auto-apt, см. Установка пакетов "по запросу", раздел 5.3.


5.5 Как получить информацию об изменениях в пакете.

Каждый пакет устанваливает в свой каталог документации (/usr/share/doc/packagename) файл, называемый changelog.Debian.gz, который содержит список изменений, сделанных в пакете в последней версии. Вы можете прочесть эти файлы, например, утилитой zless', но в общем-то не слишком удобно после полного обновления системы искать changelog`и для каждого обновленного пакета.

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

Опция "Should apt-listchanges be automatically run by apt?" очень полезна, так как показывает список изменений, сделанных в каждом установленном при обновлении пакете, и позволяет вам проанализировать ситуацию перед тем, как продолжить. Опция "Should apt-listchanges prompt for confirmation after displaying changes?" запрашивает у вас разрешения продолжать после чтения списка изменений. Если вы скажете, что не хотите продолжать, то apt-listchanges вернет ошибку и apt прервет установку.

После установки apt-listchanges, как только пакеты скачаются (или будут получены с CD или смонтированного диска) с помощью apt, можно будет смотреть списки изменений, сделанных в ранее установленных пакетах.


[ назад ] [ Содержание ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ вперед ]


APT HOWTO (Obsolete Documentation)

1.8.2 - Ноябрь 2002

Gustavo Noronha Silva kov@debian.org