Система управления пакетами APT.
Debian отличается от других дистрибутивов Linux очень удобной работой с пакетами. Для этих целей в Debian существуют два удобных менеджера пакетов: apt и dpkg. В данной статье я опишу лишь работу с менеджером пакетов APT.
APT - это Advanced Packaging Tool, система управления пакетами, то есть набор программ для установки, удаления, поиска бинарных пакетов определенных форматов. В набор входят следующие утилиты:
- apt-get - утилита для установки и удаления пакетов;
- apt-cache - утилита для работы с кэшами пакетов (например, поиса пакетов по ключевым словам);
- apt-cdrom - утилита управления CDROM ;
- apt-file утилита поиска по содержимому пакетов
- apt-config - инструмент для чтения конфигурационного файла APT;
- apt-setup - утилита для легкого доступа и управления sources.list;
- apt-move - утилита для создания локального зеркала пакетов
- apt-key - управление ключами пакетов;
- apt-sortpkgs - утилита сортировки index-файлов (файлов, которые содержат информацию о всех доступных пакетах сайта);
- apt-ftparchive - утилита для создания index-файлов (создается на сайте);
- apt-extracttemplates - утилита для извлечения DebConf конфигов и шаблонов из пакетов Debian;
- и другие.
Рассмотрим подробней работу некоторых из приведенных утилит.
apt-get и apt-cache
Утилита apt-get используется для установки и удаления пакетов. Всю информацию она берет с файла /etc/apt/sources.list. Структура этого файла следующая:
#это комментарий
deb http://host/debian distribution раздел1 раздел2 раздел3
deb-src http://host/debian distribution раздел1 раздел2 раздел3
Живой пример с моего компьютера:
# Line commented out by installer because it failed to verify:
deb http://kr.archive.ubuntu.com/ubuntu/ dapper main restricted
# Line commented out by installer because it failed to verify:
deb-src http://kr.archive.ubuntu.com/ubuntu/ dapper main restricted
...................................................
Каждая строка начинается либо с deb либо с deb-src. Эти строки указывают на адреса, где хранятся пакеты. Причем deb указывает на то, что по данному адресу находятся бинарные .deb пакеты, т.е. уже скомпилированные на компьютере разработчика, а deb-src - на то что здесь хранятся архивы исходных текстов плюс управляющие файлы. Обычно после установки многие источники закомментированы. Поэтому многие пакеты недоступны. Для решения этой проблемы надо зайти в файл /etc/apt/sources.list и удалить знак # перед нужным источником.
Также на сайте http://www.apt-get.org/ можно найти список доступных источников.
После изменений в указанном выше файле нужно запустить утилиту:
apt-get update
которая обновит список репозиториев и запишет его в базу данных доступных пакетов. Теперь информация о доступных пакетах указанных репозиториев хранится у Вас на компьютере. Даже без доступа к Интернету можно посмотреть доступные пакеты. Это делается командой:
apt-cache search имя_пакета(часть имени, свойство, присущее данному пакету...)
Если пакет доступен, устанавливаем его:
# apt-get install имя_пакета
Здесь начинается вся прелесть утилиты apt-get. Программа проверит все зависимости пакета, скачает и установит их и уже после этого установит сам пакет. Это называется автоматическим разрешением зависимостей.
Если нужно удалить пакет:
# apt-get remove имя_пакета.
Если нужно обновить всю систему, то запускаем утилиту
apt-get update - она обновляет информацию о новых версиях пакетов
и после этого
apt-get upgrade - устанавливает доступные обновления для всех пакетов системы
И в дополнения к теме обновлений:
apt-get dist-upgrade - используйте для обновления всего дистрибутива до более новой версии.
Apt-get закачивает все архивы пакетов в папку /var/cache/apt/archives/. Для удаления всех архивов с этой папки, используйте утилиту:
apt-get clean - удалит все архивы с указанной выше папки, или
apt-get autoclean - удалит только те файлы пакетов, которые больше не могут быть получены и использованы.
Утилита apt-cache уже упоминалась выше. Рассмотрим другие ее полезные возможности:
apt-cache show имя_пакета - просмотр детальной информации о пакете.
apt-cache showpkg имя_пакета - выводит более общую информацию о пакете.
apt-cache depends имя_пакета - просмотреть лишь зависимости пакета.
apt-cache rdepends имя_пакета - показать все пакеты, которые нуждаются в указанном.
apt-cdrom
Для добавления CD-ROM(DVD) в список доступных репозиториев ( в файл /etc/apt/sources.list) есть утилита:
apt-cdrom add
Если дисков несколько, то вставляем все по очереди.
apt-file
Использование.
Сначала надо обновить информацию о файлах:
apt-file update
После этого можно пользоваться некоторыми полезными функциями данной программы. Для примера найдем какому пакету принадлежит файл libkipi.so.0.
apt-file search libkipi.so.0
libkipi0: usr/lib/libkipi.so.0
libkipi0: usr/lib/libkipi.so.0.1.0
Просмотрим все содержимое этого пакета:
apt-file list libkipi0
libkipi0: usr/lib/libkipi.so.0
libkipi0: usr/lib/libkipi.so.0.1.0
libkipi0: usr/share/apps/kipi/data/banner_left.png
libkipi0: usr/share/doc/libkipi0/AUTHORS
libkipi0: usr/share/doc/libkipi0/README
........................
В отличие от apt-cache, apt-file может искать файлы в пакетах и выводить полный список файлов данного пакета, даже если он не установлен.
apt-setup
apt-setup - это утилита для удобного добавления дополнительных репозиторев в файл /etc/apt/sources.list.
Запускаем apt-setup , после чего должно появиться меню с вопросами о конфигурации файла /etc/apt/sources.list. Вопросы вида: выбрать с чего ставить (CD-ROM, http, ftp...), выбрать страну, выбрать с какого зеркала ставить, указать прокси (если надо). Если у Вас нет данной утилиты, то надо поставить пакет base-config. Альтернатива: править все вручную.
apt-config
Все настройки APT прописаны в конфигурационном файле /etc/apt/apt.conf. Утилита apt-config может отобразить этот файл на экран, используя
apt-config dump
APT "";
APT::Architecture "amd64";
APT::Build-Essential "";
APT::Build-Essential:: "build-essential";
APT::Periodic "";
..................
Более полезным будет использование этой утилиты в скриптах.
apt-move
С помощью этой утилиты можно создать локальное зеркало пакетов. Для этого достаточно указать путь к архивам файлов и место, где должно находиться зеркало.
apt-move update - переносит из /var/cache/apt/archives пакеты в директорию локального зеркала (указывается в /etc/apt-move.conf как переменная LOCALDIR=path_to).
По сути apt-move update является выполнением последовательности команд:
apt-move get - формирует мастер-файл;
apt-move move - переносит пакеты из кэша apt в локальное зеркало;
apt-move delete - удаляет устаревшие пакеты;
apt-move packages - создает Packages.gz и Sources.gz дерева локального зеркала.
apt-key
Как уже упоминалось выше, эта утилита работает с ключами пакетов. Криптография открытых ключей основана на паре ключей - общедоступный и личный. Список ключей можно узнать командой
sudo apt-key list
pub 1024D/437D05B5 2004-09-12
uid Ubuntu Archive Automatic Signing Key
.............
Если Вы добавили некоторый неофициальный репозиторий в файл /etc/apt/sources.list, то могут возникнуть проблемы с ключами. Чтобы их решить, нужно добавить ключи этого пакета в файл списка связок ключей (/etc/apt/trusted.gpg), используя команду
apt-key add файл_содержащий_ключ
Более подробно о службе безопасности утилиты APT можно почитать здесь.
Помощь.
APT - предоставляет хорошую документацию - пакеты apt-doc и apt-howto-ru. Устанавливаем их. Для того, чтобы прочитать apt-doc, набираем в браузере следующее usr/share/doc/apt-doc/guide.html/index.html. Хороший справичник HOWTO на русском языке смотрим здесь - /usr/share/doc/Debian/apt-howto/apt-howto.ru.html.
Литература:
1. ATP-HOWTO
2.http://linuxhelp.blogspot.com/2005/12/concise-apt-get-dpkg-primer-for-new.html
3.http://wiki.debian.org/SecureApt
4.http://citkit.ru/articles/130/
(продолжение - менеджер пакетов DPKG)
8 коммент.:
Хорошая шпаргалка, спасибо. Если меня постигнет амнезия, буду знать, куда идти :-)
А как же aptitude? Вместо apt-get я сейчас использую только его.
К сожаление с aptitude я почти не знаком. Вернее как-то так получалось что все время использовал или apt или dpkg. И вроде хватало.
Кстати, многие рекомендуют использовать именно aptitude, аргументируюя это тем, что он лучше справляется с проблемами зависимостей.
Ну, и опять же, довольно-таки удобный "псевдографический" интерфейс
> Кстати, многие рекомендуют использовать именно aptitude, аргументируюя это тем, что он лучше справляется с проблемами зависимостей.
правильней "разработчики Debian рекомендуют использовать aptitude".
> Ну, и опять же, довольно-таки удобный "псевдографический" интерфейс.
Откройте для себя aptitude install pkg-name, aptitude search etc.
Неплохо бы добавить apt-src - тоже во многом полезна
Ну если разработчики рекомендуют aptitude, то значит придется учить:).
Если меня постигнет амнезия, буду знать, куда идти :-)
Отправить комментарий