Mint’изация Ubuntu: пакетирование mintsystem

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

Как было сказано в предшествующей заметке о Mint’изации Ubuntu, Mint-реализация утилиты apt без всяких проблем работает во всех дистрибутивах этого самейства. Правда, будучи установлена через то устройство, имя файла которого не принято называть при дамах. Однако это можно сделать и более традиционным способом — точно таким же, как это было проделано для той же утилиты, собственноручно модицифицированной, в LMDE. Правда, после некоторой подготовки.

Нормальной установке пакета mintsystem вне «родных» дистрибутивов препятствуют его зависимости — не связанные, за некоторыми исключениями, с функциональностью его утилит, но служащие для их интеграции в Mint-среду. Так что после клонирования git-версии исходников (о чём говорилось ранее) первым делом надо от этих зависимостей избавиться. Для чего открывается файл path2/mintsystem/debian/control, нужная секция которого в оригинале выглядит так:

Depends:
 ${python:Depends}, ${misc:Depends},
 aptitude, cowsay, fortune, fortunes-husse,
 mint-common, mint-info, python, zenity

Лишними в этом списке являются пакеты fortunes-husse, mint-common, mint-info, которые удаляются из него безболезненно. Разве что без них не будут установлены некоторые дополнительные утилиты (которые, между нами говоря, не очень-то и нужны).

Далее редактируется файл /usr/local/bin/apt для добавления дополнительных субкоманд и модификации существующих, как это было описано ранее. А кроме того, удаляются строки, обеспечивающие выполнение субкоманды version — она привязана к Min-специфичному Python-сценарию, и в Ubuntu работать не будет. Конечно, можно было бы подыскать ему замену, но мне это было лениво, версию любого пакета можно узнать и другими способами.

После этого остаётся только отредактировать файл path2/mintsystem/debian/changelog, дабы установить идентификатор версии пакета, отличающий его от оригинала (который для текущей версии имеет имя mintsystem_8.0.8_all.deb), зафиксировать внесённые изменения и не забыть подписаться, указав свой e-mail и время правки. В меру своего разумения я сделал это так:

mintsystem (8.0.8.1wily) wily; urgency=medium

  * Added "apt auto" command 
  * Added "apt list" command
  * Added "apt list-inst" command
  * Added "apt list-up" command
  * Added "apt manual" command
  * Added "apt showauto" command
  * Added "apt showhold" command
  * Added "apt showmanual" command
  * Modified "apt hold" command
  * Modified "apt unhold" command
  * Removeded "apt held" command
  * Removeded "apt version" command

 -- Alexey Fedorchuk   Sat, 8 Aug 2015 12:09:37 +0000

Теперь подготовительный этап закончен, можно переходить в корень дерева исходников и собирать пакет командой

$ dpkg-buildpackage -us -uc

Что завершится появлением «этажом выше» таких файлов:

mintsystem_8.0.8.1wily_all.deb
mintsystem_8.0.8.1wily_amd64.changes
mintsystem_8.0.8.1wily.dsc
mintsystem_8.0.8.1wily.tar.xz

Как явствует из имени пакета и сопровождающих его файлов (архива исходников, описания и changelog‘а), теоретически пакет предназначался для тестируемой ныне версии 15.10, в которой он встал, как влитой. Однако я не поленился установить его и в 14.04.03 LTS. Где он тоже установился и работает вполне справно. А вот проверять пакет в промежуточных релизах мне было откровенно лениво, но не вижу причин, по которым он в них не будет устанавливаться и работать.

К слову сказать, устанавливал я пакет тремя способами. Сначала — командой

$ sudo dpkg -i mintsystem_8.0.8.1wily_all.deb

ответом на что было сообщение о нарушении зависимостей (не доставало пакета fortune). Предвидя, что недостачей оного дело не ограничится, я обратился к графической утилите Gdebi. Она сообщила о нехватке четырёх пакетов, причём, вопреки своему обыкновению, не сказала, каких именно. Тем не менее, в обоих версиях все зависимости она вытащила автоматически, и установка пакета завершилась успешно.

После этого я удалил пакет mintsystem его же средствами, то есть командой

$ apt purge mintsystem

Которая вызвала сообщение об ошибке (видимо, саму себя ей удалять не очень хотелось), но с задачей своей справилась. Далее я командой

$ sudo apt-get autoremove

очистил систему от автоматически установленных зависимостей, и повторил процедуру, прибегнув к утилите gdebi, работающей в текстовом режиме. Вот она-то и открыла мне тайну зависимостей, которую пыталась скрыть от народа её графическая сестрёнка:

Requires the installation of the following packages: \
cowsay fortune-mod fortunes-min librecode0

Linux Mint System Base Package
 Used by the desktop and other mint tools to gather
 information and process common system tasks.
 Modified for Ubuntu
Do you want to install the software package? [y/N]:y

С последним предложением я, разумеется, согласился, после чего пакет был установлен столь же успешно, как и ранее.

Как неоднократно говорилось, исполняемые файлы пакета mintsystem устанавливаются в каталог /usr/local/bin. Содержимое его в Ubuntu после этого выглядит так:

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

Одноимённый же каталог дистрибутивов проекта Mint (например, в Rafaela и Betsy) выглядит побогаче:

$ ls -1 /usr/local/bin
apt*
gnome-help*
highlight*
mate-system-monitor*
mint-md5sum*
pastebin*
search*
yelp*

Отсутствие в первом случае нескольких утилит как раз и вызвано исключением Mint-специфичных зависимостей из debian/control перед сборкой версии для Ubuntu — но не очень-то их и хотелось. Те же утилиты, которые установились, полностью работоспособны. Даже, как ни странно, mint-md5sum. И, в отличие от отсутствующих, в некоторых случаях могут быть полезны. Что позволяет мне предложить пакет для Ubuntu (как и модифицированный пакет для обоих Mint’ов) вниманию почтеннейшей публики.

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