Моя дорогая Betsy. Управление пакетами: Gdebi в графике и тексте

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

Как бы ни изобильны были официальные репозитории 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-пакет на удалённом ресурсе в браузере:

gdebi_001
На примере пакета refractainstaller-base можно видеть, что при этом она сообщает и о недостающих зависимостях, список которых можно просмотреть, нажав кнопку Подробности:

gdebi_002
Сообщает программа и о конфликтах пакета, требующих удаления каких-либо пакетов, наличествующих в системе:

gdebi_004
Также с выведением списка оных:

gdebi_005
Так что если зависимости пакета по каким-либо причинам не устраивают, или конфликтующим пакетов жертвовать нежелательно, от установки пакета можно отказаться. И всё это — без скачивания файла и каких-либо дополнительных запросов.

Если же никаких противопоказаний не обнаруживается, ддля установки достаточно нажать соответствующую кнопку. Только после этого начнётся реальное скачивание пакета и его зависимостей, а также их установка, завершающаяся той же картинкой с двумя новыми кнопками — Переустановить пакет и Удалить пакет:

gdebi_006
Правда, такое «мирное» разрешение зависимостей бывает, только если соответствующие им пакеты находятся в одном из подключённых репозиториев. Если их там нет — последует сообщение об ошибке, как при попытке установить refractainstaller-gui раньше, чем refractainstaller-base:

gdebi_007
Удаление пакета происходит мгновенно после нажатия на соответствующую кнопку. Однако тут нужно помнить, что его зависимости не только не удаляются, но и не подпадают под действие 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 показались мне очень полезными, каждая по своему. Графическая версия полезна при просмотре зависимостей неизвестного пакета из удалённого ресусрва и последующей его установки, а текстовая — для проверки «устанавливаемости» пакета.

Предварительное оглавление

Моя дорогая Betsy. Управление пакетами: Gdebi в графике и тексте: 1 комментарий

  1. Debian ,начиная с 7 и затем 8 версии и LMDE настолько настолько удовлетворили большинство моих виртуальных потребностей ,что из описанных выше видов приложений поставил только skype :)
    Правда ,через Synaptic пришлось поставить к нему пару десятков 32-х биттных библиотек :)

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