Для системы APT существует несколько оболочек, которые значительно упрощают просмотр пакетов, которые доступны для установки или уже установлены, а также для поиска разделов, приоритетов, описания пакетов и т.д.
Но... наша цель состоит в изучении самого APT. Так как же найти имя пакета, который вам надо установить?
Для такой задачи мы располагаем несколькими ресурсами. Начнем с apt-cache. Эта программа используется системой APT для управления ее базами данных. Мы только вкратце оглядим ее более практические приложения.
Например, допустим, что вы хотите вспомнить старые добрые денечки 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
В общем, мы имеем полный арсенал для поиска имен нужных нам пакетов.
Один из способов найти имя пакета - знать имя какого-либо важного файла,
находящегося в этом пакете. Например, чтобы найти пакет, которому принадлежит
некий файл ".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
Вы собираете пакет, и вдруг, бах! Ошибка из-за того, что нет какого-то там
нужного файла .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.
Если вы хотите установить пакет и не можете найти его название с помощью
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.
Каждый пакет устанваливает в свой каталог документации (/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, можно будет смотреть списки изменений, сделанных в ранее установленных пакетах.
APT HOWTO
1.8.2 - Ноябрь 2002
kov@debian.org