31 мая 2010 г.

Aptitude

Для работы с пакетами в debian и основанных на нём дистрибутивах используется программа aptitude. Она является более новым инструментом, чем apt, и рекомендуется как основной в debian. Говорят, что с зависимостями она управляется лучше и этому можно найти подтверждающие примеры в сети. Она полностью заменяет функционал двух утилит apt: apt-get и apt-cache.
Во многом, правда, они схожи, в том числе в командах много общего, а также используются общие файлы, так что по основам работы работы я не буду повторяться - всё есть в предыдущем посте.

Вообще-то у aptitude даже есть графический интерфейс:
aptitude
Ну, почти графический.
В таком виде (так называемый интерактивный режим) программа работает если запустить её из консоли просто командой aptitude. Ещё можно набрать aptitude -u, и тогда при запуске будет сразу выполнено обновление списка пакетов.
Те, кто освоил работу с интерактивным режимом, утверждают, что он очень удобен.
Но пока тут будет шпаргалка по основным командам aptitude для работы в консоли.

aptitude install pkg установит пакет (если во время скачивания произошёл обрыв связи, то повтор команды продолжит скачивание с нужного места; и ещё когда команда уже начала выполняться (после ответа yes), то даже если она была прервана, пакет считается как бы установленным и для его удаления надо выполнить соответствующую команду)
aptitude reinstall pkg переустановит пакет (например, если он сломан неаккуратным изменением конфигов, то так можно его вернуть в дефолтное состояние)
aptitude remove pkg удалит пакет (файлы настроек останутся; и в отличии от apt-get remove удаляются также и пакеты, установленные автоматически как зависимости указанного, но если от них больше ничего не зависит)
aptitude purge pkg полностью очистит систему от пакета (удалит пакет и его файлы настройки; файлы конфигурации в папке пользователя останутся)
aptitude download pkg загрузит пакет без распаковки и установки (в текущую директорию)

aptitude update обновит список пакетов
aptitude safe-upgrade обновит версии пакетов до последних, не меняя их состав (установленные пакеты не будут удалены, установлены будут лишь те, что требуются как зависимости; если требуется удалить какой-то пакет, чтобы поставить другой, то обновление пакетов не будет выполнено)
aptitude upgrade обновит установленные пакеты (на нашла, есть ли отличие от safe-upgrade, но команда тоже работает)
aptitude full-upgrade произведёт полное обновление системы (удаляя и устанавливая пакеты насколько это необходимо)
aptitude dist-upgrade аналог full-upgrade (для удобства юзеров привыкших к apt-get dist-upgrade)
aptitude clean удалит загруженные файлы пакетов (очистка каталога /var/cache/apt/archives/)
aptitude autoclean удалит старые загруженные файлы пакетов (неиспользуемых, то есть тех, что уже не установлены в системе)

aptitude hold pkg закрепит текущую версию пакета (он не будет обновляться при upgrade и dist-upgrade)
aptitude unhold pkg отменит закрепление версии для пакета
aptitude keep pkg отменяет любые запланированные действия по пакету (то есть закрепляет текущую версию и не даёт ничего сделать с пакетом сейчас, но не мешает это делать при обновлении в будущем)
aptitude markauto pkg пометит пакет как установленный автоматически в качестве зависимости (в дальнейшем такой пакет удалится, когда от него ничего не будет зависеть)
aptitude upmarkauto pkg убирает с пакета пометку, что он установлен автоматически

aptitude search keyword ищет пакет по имени или выражению
aptitude show pkg покажет подробную информацию о пакете
aptitude why pkg покажет пакеты, которым для работы необходим указанный пакет
aptitude why-not pkg покажет пакеты, которые конфликтуют с указанным пакетом
aptitude changelog pkg покажет журнал изменений пакета

По поиску чуть подробнее. Дело в том, что он выводит список пакетов с дополнительной информацией, в частности в левой колонке буквами маркируются состояния пакетов следующими обозначениями:
i - установленные пакеты
p - неустановленные пакеты (или полностью удалённые)
c - удалённые пакеты (файлы конфигурации остались в системе)
v - виртуальные пакеты (это просто списки реальных пакетов для более удобной установки, ещё называемые мета-пакетами, например, gnome)

а также дополнительными обозначениями (чуть правее):
A - автоматически установленные пакеты (как зависимости других)
h - пакеты, для которых зафиксированы их текущие версии
u - пакеты, полученные, распакованные, но не установленные
C - недонастроенные пакеты
H - недоустановленные пакеты
B - сломанные пакеты (содержащие ошибки или утратившие зависимости)

Некоторые опции, употребляющиеся с командами:
-s имитация действий
-d только загрузить пакеты, но ничего не устанавливать
-P всегда спрашивать подтверждения
-y автоматически отвечать "да", на все вопросы
-f исправлять сломанные пакеты
-V показывать версию устанавливаемых пакетов
-q не выводить индикаторы прогресса
-R установит только необходимые зависимости, без рекомендованных
-v вывод дополнительной информации

Интересные варианты использования разных команд в одной строке (не встречала, чтобы этим активно пользовались, поэтому бонусом):
package+ устанавливает пакет (в команде aptitude remove, например)
package- удаляет пакет
package+M устанавливает пакет и помечает его как установленный автоматически
package_ удаляет пакет со всеми настройками (purge)
package= фиксирует текущую версию пакета (hold)
package: запрещает любые действия с пакетом (keep)
package&M помечает пакет как установленный автоматически (markauto)
package& помечает пакет как установленный вручную (unmarkauto)

Как водится, больше можно узнать, набрав в консоли man aptitude, правда и этот ман не переведён на русский.

6 комментариев:

  1. Спасибо, полезный пост.

    ОтветитьУдалить
  2. присоединяюсь, почемуто все понятно не то что в mane

    ОтветитьУдалить
  3. еще бы про поиск и установку найденных...

    ОтветитьУдалить
  4. приятно) ну для себя писала шпаргалку, поэтому сжато

    ОтветитьУдалить
  5. > package: запрещает любые действия с пакетом (keep)
    Насколько мне не изменяет память - двоеточие действует только во время следующей операции с пакетами. Например, обновления. Могу ошибаться, это по памяти...

    ОтветитьУдалить
  6. terminus в эмуляторе посексовей смотрится =)

    ОтветитьУдалить