Утилита apt для Mint в Matuntu

Алексей Федорчук

Не так давно писал я о несравненных достоинствах той утилиты apt, что реализована для Mint и входит в пакет mintsystem из его репозитория. И в ходе сочинения той заметки задался вопросом: а почему никто не додумался включить её в состав Ubuntu и её прямых клонов? Или хотя бы собрать заточенный под Ubuntu’иды пакет для PPA-репозитория. Ведь особых технических сложностей здесь ожидать не приходится: Mint, как многократно проверено (в том числе и автором этих строк) практически полностью бинарно совместим с Ubuntu, значит, и обратная совместимость (точнее, в данном случае прямая) должна иметь место, хотя и с некоторыми, возможно ограничениями.

Профит же от этого — бесспорный: apt из Mint функционально превосходит не только apt из APT, но и все apt-get‘ы и apt-cache, ибо включает в себя изрядную часть функционала aptitude, а местами даже и dpkg. А потому единственное объяснение — записные убунтийцы полагают для себя зазорным заимствовать наработки какого-то Mint. Но мы-то с вами, товарищи, простые русские люди, и нам не западло применять всякие хорошие вещи, кем бы они ни были придуманы. А потому я решил проверить, как можно прикрутить Mint’овский apt к Matuntu.

Разумеется, лобовое решение — просто подключить репозиторий packages.linuxmint.com — не кажется самым здоровым из-за вполне вероятных комнфликтов между пакетами MATE (о причинах говорилось в предыдущей заметке). Поэтому первым делом я попробовал просто скачать пакет mintsystem (например, отсюда) и установить его обычным способом:

$ sudo dpkg -i path2/mintsystem_7.9.8_all.deb

В ответ на что было выдано:

dpkg: зависимости пакетов не позволяют настроить пакет mintsystem:
 mintsystem зависит от mint-info, однако:
  Пакет mint-info не установлен.
 mintsystem зависит от cowsay, однако:
  Пакет cowsay не установлен.
 mintsystem зависит от mint-common, однако:
  Пакет mint-common не установлен.

dpkg: ошибка при обработке пакета mintsystem (--install):
 проблемы зависимостей — оставляем не настроенным

Пакет тем не менее, установился, утилита apt обнаружилась там, где ей и следовало быть — в каталоге /usr/local/bin. И в ответ на команду

$ apt

запускалась именно она, поскольку значения переменной $PATH установились следующими:

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

Выполнялись также «информацилнный» внутренние команды, типа apt search, apt show etc. То есть те, что не требовали прав администратора и не вносили изменений в систему. Однако попытка установить какой-нибудь, пакет, например, такая

$ apt install geany

выдала следующее:

Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Возможно, для исправления этих ошибок вы захотите воспользоваться «apt-get -f install»:
Пакеты, имеющие неудовлетворённые зависимости:
 geany : Зависит: geany-common (= 1.23.1+dfsg-1) но он не будет установлен
 mintsystem : Зависит: mint-info но он не может быть установлен
              Зависит: cowsay но он не будет установлен
              Зависит: mint-common но он не может быть установлен
E: Неудовлетворённые зависимости. Попытайтесь выполнить «apt-get -f install», не указывая имени пакета, (или найдите другое решение).

Очевидно, что в данной ситуации apt-get -f install ничего дать не мог (кроме удаления некорректно поставленного пакета mintsystem. Попытка ручного разруливания зависимостей тоже смысла не имела — mint-common и mint-info потянули бы за собой весь дистрибутив-специфический инструментарий.

Так что следовало искать это самое «другое решение». И оно напрашивалось: список неудовлетворённых зависимостей на первый взгляд не мог быть критичным для исполнения команд пакета mintsystem. И потому я распотрошил пакет mintsystem_7.9.8_all.deb (это легко сделать с помощью менеджера архивов Engrampa или Midnight Commander) и внаглую скопировал в каталог /usr/local/bin, предварительно создав его, исполняемые бинарники пакета — их всего пять:

$ ls /usr/local/bin/
apt  highlight  mint-md5sum  pastebin  search

После этого apt из пакета mintsystem приобрёл полную функциональность — то есть стал работать точно так же, как в родной системе Mint (что, как уже говорилось, описано здесь). К слову сказать, работоспособными оказались также mint-md5sum и search. А вот назначения остальных двух команд (highlight и pastebin) я так и не понял, ещё когда пытался разобраться с ними в Mint.

Разумеется, описанный способ прикручивания Mint’овского apt’а к Matuntu — идеологически не правилен, и ни в коем случае не может быть рекомендован к практическому применению. Однако проведённый экесперимент показывает, что эта утилита сама по себе вполне рабоспособна без своих дистрибутив-специфических зависимостей. И потому дело остаётся за малым: пересобрать пакет mintsystem, исключив оные (думаю, без лицезрения коровы в ответ на команду apt moo большинство из нас как-то переживут). После чего поместить его в Launchpad на радость всем убунтийцам.

Вдруг кто-нибудь возьмётся за это благородное дело?

Утилита apt для Mint в Matuntu: 9 комментариев

  1. Можно и минтовское меню прикрутить. Тогда появится очередная Росинка ;)
    P.s.: её «родитель» ориентировался на Mate.

  2. > Тогда появится очередная Росинка
    А что, может и есть смысл?
    Резоны:
    в Ubuntu и MATE, и прочие DE всегда будут на положении бедных родственников; Kubuntu — исключение, потому что Риддел получил независимое от Каноникла финансирование; в Mint MATE — один из двух приоритетных десктопов, да и остальные редакции тоже отнюдь не в загоне;
    в Mint прекрасный набор фирменных утилит, который един для всех его редакций.

  3. Алексей, волей-неволей пришлось воспользоваться минтовским репозиторием Rafaela, чтобы потестировать новшества Mate 1.10. Сначала были установлены пакеты Mate, а несколько позднее удалось добавить репозиторий с ключом и теперь все фичи Minta в актуальном состоянии стали доступны для Matuntu :)

  4. И это, товарищи, правильно :)
    Кстати, есть ведь для apt install опция -t [repo_name], так что можно устанавливать пакеты из минтовского репозитория избирательно.
    Хотя почти все фирменные mint-утилиты тянут друг друга как зависимости.

  5. Для полноценной работы MintUpdate в Matuntu c DE Mate 1.10 пришлось кодовое имя Ubuntu 14.04.2 LTS поменять на Linux Mint 17.2 Rafaela.

  6. Да, все mint-утилиты, хоть каким-то боком имеющие отношение к работе с пакетами, этого требуют. Так что может, просто перевести Matuntu на пакетную базу Mint’а? А когда Ubuntu окончательно о-snapy’тся, об-Mir’ится, а её Unity — обвосьмирится и одебилится, и на LMDE (смайлики по вкусу).
    P.S. А у меня до новых сборок Matuntu руки так и не дошли. Каюсь, но не могу заставить себя смотреть на что-нибудь кроме Cinnamon’ки.

  7. Мне придётся пересобрать последнюю Matuntu с включением минтовских баз для удобства обновлений и некоторых доработок и исправлений. Тогда милости прошу к нашему шалашу :)

  8. Спасибо, постараюсь к этому времени примириться с видом других DE, кроме любимой Cinnamon’ки

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