Linux Mint и его Cinnamon. Очерки применителя - Алексей Федорчук
Шрифт:
Интервал:
Закладка:
$ sudo dpkg -P packagename
произведет полную очистку системы от всех компонентов пакета (кроме конфигурационных файлов в домашнем каталоге пользователя — от них в любом случае придется избавляться вручную). Правда, только если он не связан зависимостями с другими пакетами — в этом случае последует сообщение о невозможности удаления пакета и выведен список его зависимостей, этому препятствующих.
Обратим внимание — в аргументах обеих команд фигурирует уже не полное имя пакета, а только его базовая часть. Это распространяется на все случаи использования dpkg (и других команд ее семейства), когда речь идет об уже установленных пакетах.
Следующая сфера деятельности команд семейства dpkg — получение информации о пакетах. И здесь первое дело — это получение списка пакетов, установленных в системе:
$ dpkg -l
Что в моей системе даёт примерно такой вывод:
ii accountsservice 0.6.35-0ubuntu7.1 amd64 query and manipulate user account information
ii acl 2.2.52-1 amd64 Access control list utilities
…
ii zsh 5.0.2-3ubunt amd64 shell with lots of features
ii zsh-common 5.0.2-3ubunt all architecture independent files for Z
ii zsh-doc 5.0.2-3ubunt all zsh documentation - info/HTML format
ii zsh-lovers 0.8.3-0ubunt all tips, tricks and examples for the zs
До появления интегрированной утилиты apt команда dpkg -l была чуть ли не единственным способом получения списка установленных пакетов. Или, по крайней мере, самым простым.
Для уже установленных пакетов информацию о них проще всего получить с помощью команды dpkg-query, требующей указания какого-либо из операторов действия и имени пакета в качестве аргумента. Операторы действия команды dpkg-query можно вывести так (поскольку получение информации о пакетах никак не влияет на систему в целом, необходимости в правах администратора тут не возникает):
$ dpkg-query --help
Они следующие:
• -s или --status — вывод детального статуса пакета, включающий:
• имя пакета, собственно статус (установлен ли он) и приоритет;
• секция репозитория, к которой пакета относится (например, editors — для текстовых редакторов);
• размер пакета в установленном виде;
• имя майнтайнера, архитектура, для которой пакет собран, и номер версии;
• описание зависимостей и конфликтов;
• краткое (в один абзац) описание пакета.
• -p или --print-avail — практически то же самое, но в форме, приспособленной для печати;
• -l или --list — тоже своего рода описание статуса, включающее сведения о том, установлен ли пакет, нуждается ли он в обновлении, нет ли ошибок в его настройке, и так далее;
• -W или --show — просто вывод номера версии в форме:
$ dpkg-query -W nano
nano 1.3.8-2
• -L или --listfiles — полный список файлов, относящихся к данному пакету, в форме:
/.
/etc
/etc/nanorc
/usr
/usr/share
/usr/share/doc
/usr/share/doc/nano
…
и так далее (пример для текстового редактора nano);
• -S или --search — поиск пакета, к которому относится некий файл, указанный в качестве аргумента; может выполнить и обратную задачу — поиск всех файлов, принадлежащих данному пакету, вывод в этом случае оказывается аналогичным dpkg-query -L.
Повторю, что все сказанное о информации по пакетам, относится к пакетам уже установленным. Для получения же сведений о неустановленных пакетах удобнее использовать графическую оболочку GDebi, о которой будет говориться в следующем разделе.
ещё одна важная задача утилит dpkg — выполнение настройки отдельных, уже установленных, пакетов. Предназначенная для этого команда так и называется — dpkg-reconfigure, и запускается таким образом:
$ sudo dpkg-reconfigure packagename
После этого вызывается диалоговая программа конфигурации — debconf, и ответы на серию более или менее тривиальных вопросов позволяют добиться желаемого результата. Каковы эти вопросы — зависит от настраиваемой программы. В частности, ранее dpkg-reconfigure была использована для настройки экранных шрифтов в консоли.
Установщик пакетов GDebi
GDebi представляет собой графический фронт-энд для утилиты dpkg. Она разработана фирмой Canonical специально для Ubuntu и потому, естественно, имеется и в Mint (о котором далее и пойдёт речь). Запустить GDebi можно из секции Администрирование главного меню Cinnamon — но тогда придётся обратиться к пункту File -> Open её меню, и потом долго рыскать по файловому древу в поисках нужного имени. Так что более простой способ её запуска — клик на имени deb-файла в файловом менеджере Nemo. Что представит такую картинку:
Самая ценная информация здесь — это список файлов, входящих в состав пакета. В отличие от Synaptic'а, о котором речь пойдёт со временем, GDebi выводит его даже для не установленных пакетов:
В случае, если в пакете всё устраивает, он устанавливается нажатием одноимённой кнопки, что сначала потребует авторизации, а затем незамедлительно начинается установка:
Проверка зависимостей, естественно, осуществляется как и в dpkg — на уровне удовлетворённости или неудовлетворённости. В последнем случае выводится сообщение о том, какие пакеты следует установить для их разрешения. По завершении установки картинка становится такой:
Удаление пакета выполняется тем же образом: авторизация и собственно удаление:
И завершается возвращением исходной картинки. Если от удаляемого пакета зависит какой-либо другой, то опять же последует сообщение об ошибке:
Никаких преимуществ против консольного бэк-энда, то есть собственно dpkg, я в GDebi не усмотрел — кроме разве что наглядности. Для установки большого количества пакетов она оказалась неудобной из-за необходимости авторизоваться на каждый такой чих — при использовании dpkg это можно решить один раз командой
$ sudo -i
А самая востребованная сфера применения GDebi — установка единичного, не отягощённого завимисостями, пакета на предмет «поиграться и стереть». Но в этом отношении ей нет равных…
Утилита apt. Реализация для Linux Mint
В данном очерке рассмотрены особенности утилиты apt в реализации для дистрибутива Linux Mint и её отличия от семейства утилит, входящих в пакет apt, общий для всех deb based дистрибутивов.
Введение
В процессе сочинения этой книги обнаружилось, что реализация утилиты apt для этого дистрибутива не документирована никак — не только на языке родных осин, но даже на мове Вильяма нашего, Шекспира. В связи с чем я и решил посвятить ей отдельный очерк.
Необходимость в таком материале, как мне кажется, ещё и в том, что многие начинающие пользователи Mint и особенно Linux вообще, судя по сайтам, блогам и форумам соответствующей тематики, даже не подозревают о существовании реализации apt для Mint и её отличиях от тёзки из одноимённого пакета. И потому механически применяют рецепты для чистой Ubuntu и её прямых клонов, на которые так богаты указанные ресурсы. Хотя использование apt для Mint делает эти рецепты излишними — функционал этой утилиты позволяет добиться той же цели быстрей и проще. По крайней мере, путём меньшего количества нажатий на клавиши.
Общее описание
Утилиту apt в реализации для Mint не следует путать ни с одноимённым пакетом, входящим в состав всех deb based дистрибутивов (в том числе и в Mint), ни с одноимённой же утилитой из этого пакета.
Утилита apt для Mint входит в состав пакета mintsystem, что определяется с помощью её же самой:
$ apt contains /usr/local/bin/apt
mintsystem: /usr/local/bin/apt
В отличие от стандартной утилиты apt, располагающейся в каталоге /usr/bin, apt для Mint находится в каталоге /usr/local/bin, что определяется такой командой:
$ which apt
/usr/local/bin/apt
При вводе в командной строке apt без указания пути вызывается именно она, что определяется значениями переменной PATH, определёнными в общесистемном конфиге /etc/login.defs:
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Так что для запуска стандартной утилиты apt из одноимённого пакета для неё следует указывать полный путь, например
$ /usr/bin/apt list --installed
для вывода списка инсталлированных пакетов — это чуть ли не единственная функция стандартного инструментария пакета apt, отсутствующая в apt для Mint. Ибо последняя перекрывает почти все возможности утилит apt-get и apt-cache, большинство возможностей командного режима aptitude, а также выполняет некоторые функции низкоуровневой утилиты dpkg.
Примечание. Утилита apt — не единственный компонент пакета mintsystem. Кроме неё, он включает ещё четыре утилиты (также располагающиеся в каталоге
/usr/local/bin/search
): mint-md5sum, search, highlight и pastebin.
К управлению пакетами некоторое отношение имеет только первая из них, предназначенная для подсчёта контрольных сумм. Так, команда