Mint и его два apt’а: какой выбрать
Mint и его два apt’а: какой выбрать
Во всём семействе дистрибутивов Mint для управления пакетами используется фирменная программа apt
. Она представляет собой сценарий на языке Python, интегрирующий все средства управления пакетами deb based систем — apt-get
и apt-cache
, dpkg
и aptitude
, а также отдельных команд apt-mark
и apt-file
.
Сценарий apt
вскоре после создания дистрибутива Mint (2006 год) был разработан Клементом Лефевром в 2008 году и в то время выглядел очень прогрессивным — в частности, его команды не требовали предварения командой sudo
: пароль администратора запрашивался по ходу дела, когда возникала необходимость в правах оного. Все возможности сценария apt
для Mint подробно описаны котом Мануалом в его воззрениях.
Однако жизнь не стоит на месте. И 1 апреля 2014 года в рамках проекта Debian миру была представлена утилита apt
была представлена миру 1 апреля 2014 года, которая затем развивалась со страшной научно-фантастической силой. И к настоящему времени она полностью перекрывает все потребности применителя в управлении пакетами, что кот Мануал не преминул отметить в своих воззрениях: apt и сородичи.
Ныне утилита apt
используется во всех deb based дистрибутивах, в частности, во всех производных Ubuntu. Разумеется, есть она и во всех системах семейства Mint. И возникает вопрос: а не использовать её здесь в качестве умолчального менеджера пакетов, дабы не плодить сущности.
Почему бы и нет — отвечает на это кот Мануал. Правда, из-за совпадения имён Mint’овского скрипта и обще-Debian’овской утилиты из командной строки по умолчанию запускается первый. Однако это легко поправимо путем несложного редактирования значений переменной PATH. Она определяется в файле /etc/environment
, который в первозданном виде выглядит таким образом:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin: \ /sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
Открываем этот файл от имени администратора в текстовом редакторе (например, в Xed’е):
$ sudo xed /etc/environment
И после ввода административного пароля приводим указанную строку к такому виду:
PATH="/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin: \ /sbin:/bin:/usr/games:/snap/bin"
Всё, дело в шляпе: после перезапуска сеанса шелла утилита /usr/bin/apt
будет иметь приоритет супротив Mint’овского сценария /usr/local/bin/apt
, в чём легко убедиться так:
$ which apt /usr/bin/apt
Если же вдруг потребуются какие-то фичи Mint’овского скрипта (хотя мы с Мануалом не очень представляем — какие), то его следует запускать с указанием полного пути, например:
$ /usr/local/bin/apt update [sudo] пароль для alv:
Выполнив описанную процедуру, мы с Мануалом немедленно применили результат её на практике, обновив нашу среду Cinnamon (и все связанные компоненты). О чём — в следующей заметке.
One thought on “Mint и его два apt’а: какой выбрать”
„…а не использовать её здесь в качестве умолчального менеджера
пакетов, дабы не плодить сущности.“
Вы сами пишете, что Минтовский APT удобнее при наборе sudo.
Добавлю от себя — настолько удобнее, что после него пользоваться
Дебиано-Убунтовским apt-ом невозможно.
Стоит ли себя мучать? Лучше ли будет от этого?
Посмотрим. Связка Debian→Ubuntu→Linux Mint, представляет из себя
матрёшку, одно вставлено в другое. Вы берёте самую свежую матрёшку,
которая хорошо подогнана под все все последние изменения в предыдущих: по форме, размеру, рисунку и наворотам; она же перевыпускается чаще своих собратьев. Соответственно и новейший Минтовский APT тоже должен быть хорош.
Проверим на свежем Linux Mint 20.3 .
Что из себя представляют файлы запуска для APT от Дебиан и от Минт?
===> file /usr/local/bin/apt /usr/bin/apt /usr/bin/apt-get
/usr/local/bin/apt: Python script, ASCII # Минт, текстовый файл
/usr/bin/apt: ELF 64-bit LSB # Дебиан, двоичный файл(есть текст)
/usr/bin/apt-get: ELF 64-bit LSB # это для сравнения, тоже двоичный .
* ELF — Executable and Linkable Format, формат двоичных файлов.
** Из Дебиановского двоичного файла можно извлечь читаемый текст:
===> strings /usr/bin/apt # это перечень обычных команд и их правок.
Посмотрим содержимое Минтовского APT-а:
===> cat /usr/local/bin/apt
В вольном пересказе, самое интересное:
— если вы указываете Минтовскому APT-у одну из подкоманд:
autoremove, list, show, install, remove, purge, update, upgrade,
full-upgrade и edit-sources, то запускается Дебиановский /usr/bin/apt;
это значит, что здесь Минтовский APT •равен• Дебиановскому APT-у.
-если вы указываете другие подкоманды и их опции, то запускаются либо
apt-get, либо aptitude, либо apt-cahe, либо apt-mark, либо парочка
чисто Минтовских скирптов и т.д.
Та же самая матрёшка. В чём это выражется на деле? Скажем вы хотите
установить пакет, который предварительно скачали на свою машину.
В Дебиан надо набрать „install“. В Минте — „deb“, но, судя по скрипту,
Дебиановский „install“ тоже будет работать, однако слово „deb“
короче(удобнее)-всё как у матрёшек!
Теперь возьмём какую-нибудь чисто аптитьюдовскую команду и прогоним
её на двух apt-ах. Скажем нам нужно посмотреть названия разделов
(sections) в хранилищах(repositories). Сначала в aptitude(пособнике):
=> aptitude search —display-format ‘%s’ \~T | sed ‘s/\/.*//’ | sort | uniq | wc -l
Выводит 50 строк. Теперь в Минтовском apt-е
===> apt search —display-format ‘%s’ ~T | sed ‘s/\/.//’ | sort | uniq | wc -l
Выводит 50 строк. Однако правила правописания отличаются, они короче,
а следовательно удобнее и допускают меньше ошибок.
Теперь Дебиановский apt:
> /usr/bin/apt search —display-format ‘%s’ ~T | sed ‘s/\/.//’ | sort | uniq | wc -l
E: Параметр командной строки «—display-format» непонятен
в комбинации с другими параметрами
По-русски говоря — не работает!
Значит сущности можно и нужно плодить, при условии, что они матрёшки.