Алексей Федорчук
Как бы ни изобильны были официальные репозитории Debian’а и репозитории сторонних разработчиков, и сколь бы ни просто было восполнить прорехи в них вкравлениями из PPA-репозиториев, время от времени возникает необходимость в установке автономных deb-пакетов, ни в какие репозитории не входящих. С одним из таких случаев пришлось столкнуться при установке утилит проекта Refracta.
Традиционно в таких случаях рекомендуется прибегнуть к утилите dpkg
— самому низкоуровневому инструменту для работы с deb-пакетами, к которому в конечном счёте обращаются обращаются и менеджеры пакетов, и их графические фронт-энды (общие сведения о ней — в соответствующем разделе книги про Linux Mint. Однако это, во-первых, чистый установщик пакетов, не разрешающий зависимости, а только сообщающий об их нарушении. А во-вторых, он требует лишнего телодвижения, то есть предварительного скачивния пакета.
Кроме того, можно воспользоваться Mint-реализацией утилиты apt
— с соответствующей внутреннй командой, то есть в форме
$ apt deb filename.deb
она идентична команде
$ sudo dpkg -i filename.deb
Правда, и ограничения у неё те же самые.
А можно вспомнить про программу Gdebi, которая входит в стандартную инсталляцию LMDE (как и Linux Mint), но о которой почему-то не очень часто говорят в слух, хотя в некоторых ситуациях она предлагается по умолчанию. В настоящем очерке этот заговор молчания будет нарушен.
Для начала — что такое Gdebi? Это тоже надстройка над dpkg
, воспроизводящая функционал её в части установки и удаления отдельных пакетов на локальной машине, но имеющая некоторые дополнительные возможности, о которых будет сказано ниже. Точнее, даже две надстройки, образующие пакеты gdebi-core
(библиотеки и утилита CLI) и gdebi
(графический фронт-энд для первого). Оба пакета разработаны специально для Ubuntu в 2004 году Мартином Бёмом (Martin Böhm), а ныне споровождаются Луча Фалавинья (Luca Falavigna) из фирмы Canonical. Распространяются под лицензией GPL-2+. И, не смотря на дистроспецифичное происхождение, работает, насколько я знаю, во всех deb based системах.
Запустить Gdebi можно из секции Администрирование главного меню Cinnamon, где она фигурирует под длинным именем Программа установки пакетов Gdebi. Однако по умолчанию её предлагается открыть при щелчке на любом имени файла deb-пакета в локальной файловой системе. Более того, то же самое предлагается, если щёлкнуть на ссылке на deb-пакет на удалённом ресурсе в браузере:
На примере пакета refractainstaller-base
можно видеть, что при этом она сообщает и о недостающих зависимостях, список которых можно просмотреть, нажав кнопку Подробности:
Сообщает программа и о конфликтах пакета, требующих удаления каких-либо пакетов, наличествующих в системе:
Также с выведением списка оных:
Так что если зависимости пакета по каким-либо причинам не устраивают, или конфликтующим пакетов жертвовать нежелательно, от установки пакета можно отказаться. И всё это — без скачивания файла и каких-либо дополнительных запросов.
Если же никаких противопоказаний не обнаруживается, ддля установки достаточно нажать соответствующую кнопку. Только после этого начнётся реальное скачивание пакета и его зависимостей, а также их установка, завершающаяся той же картинкой с двумя новыми кнопками — Переустановить пакет и Удалить пакет:
Правда, такое «мирное» разрешение зависимостей бывает, только если соответствующие им пакеты находятся в одном из подключённых репозиториев. Если их там нет — последует сообщение об ошибке, как при попытке установить refractainstaller-gui
раньше, чем refractainstaller-base
:
Удаление пакета происходит мгновенно после нажатия на соответствующую кнопку. Однако тут нужно помнить, что его зависимости не только не удаляются, но и не подпадают под действие apt autoremove
, даже если более никем не используются, хотя статус автоматически установленных у них и имеет место быть.
Как было сказано выше, кроме графического фронт-энда, имеется и текстовый вариант программы Gdebi. Он запускается одноимённой командой, которая без аргумента выведет справку по собственному использованию:
$ gdebi Usage: использование: gdebi [опции] имя_файла Для отображения графической версии запустите gdebi-gtk Options: --version show program's version number and exit -h, --help show this help message and exit -n, --non-interactive Запустить неинтерактивно (опасно!) -o APT_OPTS, --option=APT_OPTS Установить опцию конфигурации APT -q, --quiet Не отображать информацию о ходе выполнения --apt-line Только эмулировать и вывести строку, совместимую с apt-get в stderr --root=ROOTDIR Использовать альтернативную корневую папку
В качестве аргумента команды принимается имя файла deb-пакета, что, при наличии административных привилегий, приведёт, после соответствующего подстверждения, к установке его и его зависимостей, если те имеются в подключённых репозиториях — точно также, как и в версии графической, однако при наличии скачанного файла.
В текстовой версии gdebi
самой полезной показалась мне опция --apt-line
, дающая только имитацию установки пакета (очевидно, что права даминистратора при этом не требуются):
[alv]=$ gdebi --apt-line refractainstaller-gui_9.1.4-1_all.deb [soft/refracta] Reading package lists... Done Building dependency tree Reading state information... Done Building data structures... Done Building data structures... Done libutempter0 xterm
В общем, обе версии программы Gdebi показались мне очень полезными, каждая по своему. Графическая версия полезна при просмотре зависимостей неизвестного пакета из удалённого ресусрва и последующей его установки, а текстовая — для проверки «устанавливаемости» пакета.
Debian ,начиная с 7 и затем 8 версии и LMDE настолько настолько удовлетворили большинство моих виртуальных потребностей ,что из описанных выше видов приложений поставил только skype :)
Правда ,через Synaptic пришлось поставить к нему пару десятков 32-х биттных библиотек :)