Командный режим aptitude: установка и удаление пакетов, обновление системы

Если наши подозрения в полезности того или иного пакета окажутся обоснованными, самое время приступить к его установке. И тут уже потребуются привилегии администратора -- как это принято в дистрибутивах семейства Ubuntu, их следует временно получить посредством команды sudo. В более иных дистрибутивах можно прибегнуть к команде su.

Установка выбранных пакетов осуществляется посредством оператора install, требующем в качестве аргумента имени пакета:

$ sudo aptitude install pkg_name

При этом происходит просмотр репозиториев, перечисленных в соответствующем конфигурационном файле (файл этот -- то же, что и для утилит семейства apt, то есть /etc/apt/source.list; о его настройке будет говориться на одной из ближайших страниц), и, при необходимости, скачивание deb-пакета из Сети, помещение его в локальный кэш пакетов (каталог /var/cache/apt/archives), распаковка архива, инкорпорация его компонентов в файловую систему и, при необходимости, выполнение действий по настройке, автоматически или, если требуется, в интерактивном режиме.

При разрыве связи во время скачивания пакета его уже полученный фрагмент помещается в каталог /var/cache/apt/archives/partial/, и повторение процедуры install продолжает докачку с места обрыва.

Оператор install команды aptitude, в отличие от одноименного из apt-get, по умолчанию получает из репозитория, помещает в локальный кэш, устанавливает и настраивает не только "жесткие" зависимости пакета (собственно depends), но и часть "мягких" (те, что относятся к категории recommends). На усмотрение пользователя остается только установка "мягких" зависимостей из категории suggest (то есть "предложений" оператора show). Хотя, как мы увидим со временем, такое положение можно изменить.

Установка версий пакетов осуществляется в соответствие с описанием их локального кэша. Каковой время от времени (а также после подключения дополнительных репозиториев) нуждается в обновлении. Это осуществляется посредством оператора update, в аргументах не нуждающегося.

Пакет, «испорченный» по какой-либо причине (например, неаккуратным вмешательством в конфигурационные файлы) можно «починить». Команда

$ sudo aptitude reinstall pkg_name

вернет его в первозданное состояние.

Установленные пакеты, оказавшиеся не нужными, могут быть удалены. Директива

$ sudo aptitude remove pkg_name

удалит указанный в качестве аргумента пакет с сохранением его конфигурационных файлов. Именно такая ситуация и маркируется литерой c в выводе команды aptitude search (см. предыдущую страницу). Полная же очистка системы от всех следов пакета достигается оператором purge:

$ sudo aptitude purge pkg_name

В этом случае пакет в выводе команды aptitude search маркируется литерой p, то есть становится неотличимым от пакета, которого в системе никогда не было. Однако оператор purge не удаляет конфигурационные файлы пакета из домашнего каталога пользователя -- это придется проделать самостоятельно.

Можно удалить сразу несколько пакетов. Для этого не всегда нужно перечислять их в качестве аргументов оператора remove или purge. В некоторых случаях можно прибегнуть к удалению по маске, то есть к конструкции типа

$ aptitude purge ’~nvidia’

В данном примере будут бесследно удалены все пакеты, имеющие компонент nvidia в своем имени.

Важно, что оба оператора удаления -- и remove, и purge, -- деинсталлируют не только пакет, указанный в качестве аргумента, но и все те, которые были установлены автоматически в качестве его зависимостей -- разумеется, только в том случае, если в системе не осталось других программ, которые от них зависят. Уже одно это является веским аргументом в пользу предпочтения aptitude перед классическими инструментами apt.

Программа aptitude позволяет выполнить и тотальное обновление системы -- этой цели служат операторы upgrade и dist-upgrade. Как и в apt-get, первый обновит все установленные пакеты в том случае, если это не влечет за собой новых, противоречащих наличным, зависимостей. Оператор же dist-upgrade выполнит принудительное обновление системы. В обоих случаях удалению подвергнутся также автоматически установленные пакеты, от которых больше ничего не зависит.

Важно, что пакеты, имеющие статус h (то есть фиксированной версии), не подвергнутся обновлению ни при выполнении оператора upgrade, ни при dist-upgrade. Фиксация же версии выполняется посредством оператора hold, аргументом которого выступает имя пакета. Снять фиксацию версии можно с помощью оператора keep и того же аргумента.

Как и при выполнении оператора install, процедуры upgrade и dist-upgrade безболезненно переживают разрыв связи (или, например, прерывание по нажатию клавишной комбинации Control+C): повторный их запуск возобновляет установку с момента прерывания.

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

И, наконец, еще пара операторов, не имеющих аналогов в инструментарии apt: markauto и unmarkauto. Первый помечает пакет или их группу как установленные автоматически в качестве зависимостей. Так, командой

$ sudo aptitude markauto ’~slibs’

в качестве автоматически установленных (статус A) будут помечены все пакеты с компонентом libs в имени -- то есть практически все библиотеки. Следствием чего явится автоматическое удаление неиспользуемых библиотек после деинсталляции последнего зависимого от них пакета.

Если же для некоторых библиотек это по каким-либо причинам нежелательно, их можно "размаркировать" командой

$ sudo aptitude unmarkauto pkg_name

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


Теги: , , ,