APT (конспект)

Jun 06, 2010 12:53



APT - Advanced Packaging Tool - Инструмент управления пакетами, позволяющий обслуживать зависимости и сохранять пользовательские настройки программ. Создан для Debian, и работает в других дистрибутивах на основе Debian, таких как Ubuntu.

Хорошее представление об этом даёт цитата из руководтсва по apt:

В начале был .tar.gz. Пользователи должны были сначала скомпилировать программы, которые они хотели использовать на своих системах GNU/Linux. Когда создавался Debian, возникла необходимость в системе управления пакетами, установленными на машине. Этой системе было дано имя dpkg. Этот известный "пакет" первым появился на GNU/Linux, прежде чем Red Hat решил создать собственную систему "rpm".

Затем перед создателями GNU/Linux быстро возникла новая дилемма. Им понадобился
способ для быстрого, практического и эффективного пути установки пакетов, который должен автоматически обслуживать зависимости и сохранять настроечные файлы при обновлении. Тут снова, Debian вышел вперед и предложил миру APT, Advanced Packaging Tool, который затем был портирован Conectiva для использования с rpm и был адаптирован некоторыми другими дистибутивами.

Это самое руководство находится тут, и даже несмотря на свой год создания (2002) в целом оно и сейчас актуально.

Здесь частичный коспект этого документа и манов по использованию инструментов apt и aptitude.



Файл со списком источников

Для работы APT требуется файл со списком источников пакетов. Обычно это /etc/apt/sources.list (в ubuntu ещё используются отдельные файлы, находящиеся в папке /etc/apt/sources.list.d/ для программ из нестандартных источников).

Строки файла имеют следующий формат:

deb http://host/debian distribution section1 section2 section3
deb-src http://host/debian distribution section1 section2

deb - это архив двоичных пакетов (*.deb), deb-src - архивы пакетов с исходными текстами программ.

Это только пример (вместо debian в других дистрибутивах подставляется соответствующее (ubuntu, linuxmint), вместо distibution нужно вписывать соответствующую версию дистрибутива (lenny, karmic, lucid, isadora), вместо sections соответствующие разделы - тоже разные у каждого дистрибутива).

Строки, начинающиеся с решётки (#) - закомментированные, не используются, и достаточно удалить символ решётки, чтобы начать их использовать.

В исходном руководстве дальше есть много полезной информации: как сделать локальный репозиторий у себя на жёстком диске, как выбрать наилучшие зеркала для добавления в список источников, как использовать смешанную систему на основе стабильных и тестируемых пакетов, работа с некоторыми дополнительными программами, распространённые ошибки и тому подобное. Но сюда я перенесла только основные команды, необходимые для работы с пакетами, работающие как на debian, так и на ubuntu. Остальное можно узнать, набрав в консоли man и через пробел команду, использование которой нужно узнать лучше. К сожалению полностью переведённых на русский язык манов, я не нашла.

Основные операции с пакетами (установка-удаление)

apt-get install package1 package2 установит перечисленные через пробел пакеты

Если для работы одного из указанных пакетов требуется другой пакет, даже не указанный в команде, он всё равно будет установлен как зависимость, после дополнительного вопроса.

Все скачанные при установке пакеты остаются в папке /usr/cache/apt/archives/.

apt-get --reinstall install package переустановит указанный пакет

apt-get install package/distribution установит пакет из указанного дистрибутива (для debian возможно значения stable, testing или unstable)

apt-get install package=version установит пакет указанной версии

apt-get remove package удалит пакет и все его зависимости

apt-get remove --purge package удалит пакет, его зависимости и все пользовательские настройки программы

Многие из них могут применяться и с другими командами:

-d только загружает пакеты, но не устанавливает их

-s имитирует указанные действия, не выполняя их на самом деле (симуляция)

-y автоматически ответит "да" на все вопросы, не выводя их

-u выведет список всех пакетов, которые должны быть обновлены

-q не будет выводить индиктор хода работы

-V покажет полные номера версий пакетов

-f попытается починить сломанные зависимости

-m игнорировать отсутствующие пакеты (в тех случаях, когда они не могут быть скачаны или скачаны с ошибками)

Пример использования: sudo apt-get -ys install gajim - произведёт имитацию установки пакета gajim, не спрашивая подтверждения для установки зависимостей при этом.

Команды по установке и удалению можно совмещать следующим образом:

apt-get install package1 package2 package3- установит пакеты 1 и 2 и удалит пакет 3 (минус)
apt-get remove package1 package2 package3+ удалит пакеты 1 и 2 и установит пакет 3 (плюс)

Другие операции с базой данных

apt-get upgrade обновит все установленные в системе пакеты, для которых уже появились более новые версии

apt-get dist-upgrade обновит полностью систему, с помощью этой же команды возможет переход на более свежую версию дистрибутива

apt-get update обновляет список пакетов и файлы их описаний.

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

Программа Apt для определения зависимостей и других операций использует базу данных с информацией об установленных, не установленных и доступных для установки пакетах, которая хранится в файлах Packages.gz. Вышеприведённая команда синхронизирует информацию, хранящуюся локально на компьютере пользователя с данными, находящимися в он-лайновых источниках. Соответственно, если в источниках происходят какие-то изменения, а синхронизация не производилась, некоторые действия не смогут быть выполненны или будут выполнены некорректно (простейший пример: добавлен новый источник и производится попытка установить из него программу - пока не будет выполнена команда apt-get update, программу невозможно будет установить, так как в локальной базе нет информации об новом источнике и его содержимом).

apt-get check обновляет кэш пакетов и проверяет пакеты, которые недоустановлены, повреждены или установлены с ошибками

apt-get clean очищает локальное хранилище полученных файлов пакетов, но оставляет файлы из /var/cache/apt/archives/ и /var/cache/apt/archives/partial/

apt-get autoclean удаляет только те файлы, которые больше не могут быть получены и использованы

apt-get autoremove удаляет пакеты, которые были установлены автоматически для удовлетворения зависимостей, но больше не используются

Работа с исходными текстами

Должны быть подключены источники с архивами исходников (deb-src)

apt-get source package скачивает архивы исходных текстов и распаковывает их (в каталог, из которого выполняется команда)

apt-get -b source package скачивает исходники и автоматически создаёт из них установочный пакет

apt-get --compile source package вариант предыдущей команды

apt-get --download-only source package только скачивает архивы, но не распаковывает их

apt-get build-dep package устанавливает пакеты, необходимые для правильной сборки указанного пакета

Работа с оптическим носителем

apt-cdrom add добавит Cd-Rom в качестве источника для установки программ

apt-cdrom -d /path/ add добавит в качестве источника Cd-rom, точка монитрования которого отличается от стандартной (но она должна быть настроена в /etc/fstab)

apt-cdrom ident идентифицирует Cd-Rom без добавления его в список источников

Получение различной информации о пакетах

apt-cache search packagename ищет указаный пакет в базе по имени или любому слову в имени и описании (может использоваться с поисковыми запросами)

apt-cache show packagename покажет полную информацию об указанном пакете

apt-cache showpkg packagename покажет общую информацию о пакете (версию, зависимости)

apt-cache depends packagename покажет зависимости пакета

apt-cache stats покажет некоторую статистическую информацию о локальной базе пакетов

Дополнительные программы

apt-show-versions покажет, какие версии пакетов установлены в системе

apt-show-versions -u покажет список пакетов, которые могут быть обновлены, текущие и доступные версии

auto-apt run command запросит установку необходимых пакетов для выполнения указанной команды и установит их

auto-apt update обновит свою базу

apt-file search filename покажет пакет, которому принадлежит указанный файл

apt-file list packagename покажет список файлов, содержащихся в указанном пакете

apt-file update обновит свою базу (по-умолчанию использует базу auto-apt)

apt-listchanges покажет список изменений в последних версиях пакетов (эти списки хранятся в файлах /usr/share/doc/packagename/changelog.Debian.gz)

оригинал

ubuntu, команды, linux, apt, computer

Previous post Next post
Up