Работа с бинарными пакетами
Работа с бинарными пакетами
Главное действие в отношении пакетов, которые были сочтены полезными — их установка. А основным инструментом установки является внутренняя команда install. В качестве аргументов она принимает имена пакетов — те самые, которые были найдены командой apt search и в полезности которых можно было убедиться командой apt show. Например, для установки чрезвычайно полезного текстового редактора Geany следует дать команду
$ apt install geany
которая сначала запросит пароль пользователя с административным типом аккаунта:
[sudo] password for alv:
А затем, после считывания локального списка пакетов и построения дерева зависимостей, сообщит о необходимости таковых, объёме скачиваемых пакетов и увеличении занятого дискового пространства после установки, запросив подтверждение серьёзности намерений:
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
geany-common
НОВЫЕ пакеты, которые будут установлены:
geany geany-common
обновлено 0, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 37 пакетов не обновлено.
Необходимо скачать 3808 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 9872 kB.
Хотите продолжить? [Д/н]
Согласие предполагается по умолчанию, так что тут достаточно нажать Enter. После чего начинается скачивание пакетов из содержащего их репозитория, распаковка и инкорпорация компонентов в файловую иерархию, а также регистрация в базе данных и включение, если требуется, исполняемого файла в главное меню (для Geany — в секцимю Прграммирование, так как эта программа позиционируется её авторами как IDE — Integrated Development Environment, то есть интегрированная среда разработки). Основной статус пакета geany изменится на «установленный»:
$ apt search geany | head -n 1
i geany - Небольшая и быстрая IDE
А пакет geany-common приобретёт ещё и статус автоматически установленного:
$ apt search geany-common
i A geany-common - Небольшая и быстрая IDE — общие файлы
Если в системе уже был установлен данный пакет более старой версии — он будет обновлён. А вот переустановить пакет той же версии (например, если он был безнадёжно испорчен в ходе экспериментов) команда install откажется, сообщив, что
Уже установлена самая новая версия geany.
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 37 пакетов не обновлено.
Однако на этот предмет существует специальная команда reinstall, аргументом которой указывается установленный пакет, нуждающийся в исправлении.
Локально отдельные пакеты могут быть установлены с помощью внутренней команды deb, аргументом которой должно быть полное имя файла пакета, если нужно, с указанием пути. Например, команда
$ apt deb sublime-text_3065_amd64.deb
установит текстовый редактор Sublime — разумеется, предварительно файл этого пакета должен быть скачан.
Поскольку внутренняя команда deb — полный эквивалент конструкции sudo dpkg -i, она не занимается разрешением зависимостей, а только сообщает об их нарушении. Например, попытка установить в окружении Cinnamon файловый менджер Caja из среды MATE вызовет следующие сообщения:
$ apt deb caja_1.8.2-0+rebecca_amd64.deb
Выбор ранее не выбранного пакета caja.
(Чтение базы данных … на данный момент установлен 188621 файл и каталог.)
Preparing to unpack caja_1.8.2-0+rebecca_amd64.deb ...
Unpacking caja (1.8.2-0+rebecca) ...
dpkg: зависимости пакетов не позволяют настроить пакет caja:
caja зависит от libcaja-extension1 (= 1.8.2-0+rebecca), однако:
Пакет libcaja-extension1 не установлен.
caja зависит от libmate-desktop-2-17, однако:
Пакет libmate-desktop-2-17 не установлен.
caja зависит от mate-desktop, однако:
Пакет mate-desktop не установлен.
caja зависит от caja-common (= 1.8.2-0+rebecca), однако:
Пакет caja-common не установлен.
dpkg: error processing package caja (--install):
проблемы зависимостей — оставляем не настроенным
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Processing triggers for mime-support (3.54ubuntu1.1) ...
Processing triggers for gnome-menus (3.10.1-0ubuntu2) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu1) ...
Processing triggers for ubuntu-system-adjustments (2014.11.19) ...
При обработке следующих пакетов произошли ошибки:
caja
В отличие от внутренней команды install, команда deb не только обновит пакет до более новой версии, но и переустановит его версию текущую.
Установленные пакеты иногда требуется и удалять. Этой цели в apt для Mint служат две внутренние команды — remove и purge, аргументами которых служат, очевидно, имена удаляемых пакетов. Первая удаляет файлы пакета, но сохраняет его общесистемные конфиги, вторая — удаляет также и их. Различие между ними отражается в основном статусе удалённого пакета — в первом случае его значение будет c, во втором — p, как и у пакетов, которые никогда не устанавливались.
И remove, и purge автоматически удаляют все зависимые пакеты, список их выводится после ввода пользовательского пароля:
$ apt purge libreoffice-impress
[sudo] password for alv:
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Пакеты, которые будут УДАЛЕНЫ:
libreoffice-impress* libreoffice-ogltrans*
libreoffice-presentation-minimizer*
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 3 пакетов, и 5 пакетов не обновлено.
После данной операции, объём занятого дискового пространства уменьшится на 6031 kB.
Хотите продолжить? [Д/н]
Список удаляемых пакетов нужно читать очень внимательно, чтобы случайно не удалить что-нибудь жизненно необходимое.
Пакеты, от которых зависит удаляемый, автоматически не удаляются ни remove, ни purge. В этом случае apt предлагает воспользоваться внутренней командой autoremove для очистки системы от «осиротелых» зависимостей:
$ apt purge geany
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Следующий пакет устанавливался автоматически и больше не требуется:
geany-common
Для его удаления используйте «apt-get autoremove».
Пакеты, которые будут УДАЛЕНЫ:
geany*
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 1 пакетов, и 5 пакетов не обновлено.
После данной операции, объём занятого дискового пространства уменьшится на 2671 kB.
Хотите продолжить? [Д/н]
Разумеется, в нашем случае мы обращаемся не к команде apt-get, всё в той же утилите apt для Mint:
$ apt autoremove
Она не нуждается в аргументах и выполняет свою работу молча, не задавая вопросов. Перед её выполнением не вредно выполнить другую внутреннюю команду — check, проверяющую систему на предмет «сломанных» зависимостей.
apt check
[~] Что при хорошем раскладе после ввода пароля должно дать такой результата:
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
А при плохом... плохого у меня до сих пор не было.
Перед установкой пакетов из репозитория они предварительно скачиваются и помещаются в каталог /var/cache/apt/archives/. Со временем файлов пакетов накапливается много, а нужны они бывают только в исключительных случаях. Для избавления от них существуют в apt для Mint предусмотрены команды autoclean и clean. Первая удаляет из кеша только пакеты устаревших версий, сохраняя те, версии которых установлены в системе. Вторая же полностью очищает каталог /var/cache/apt/archives/.