Mint и его два apt’а: какой выбрать

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 (и все связанные компоненты). О чём — в следующей заметке.

Mint и его два apt’а: какой выбрать: 1 комментарий

  1. „…а не использовать её здесь в качестве умолчального менеджера
    пакетов, дабы не плодить сущности.“
    Вы сами пишете, что Минтовский 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» непонятен
    в комбинации с другими параметрами
    По-русски говоря — не работает!
    Значит сущности можно и нужно плодить, при условии, что они матрёшки.

Добавить комментарий