Получите сообщение о порядке при установке deb с помощью apt в терминале (из контекстного меню или щелкните)

Я нахожу apt в терминале как лучший способ установить программа из пакета deb. Поскольку я предпочитаю его другим инструментам графического интерфейса, я хочу, чтобы это было в контекстном меню для файлов deb или в качестве средства запуска среди приложений, чтобы установить deb, выполнив его (двойным) щелчком.

В Kubuntu с Dolphin я создал сервисное меню для создания этого контекстного меню, а также файл рабочего стола в ~ / .local / share / applications , чтобы выполнить то же действие, выполнив файл deb.

Файл ~ / .local / share / kservices5 / ServiceMenus / install-deb.desktop :

[Desktop Entry]

Actions=install
Icon=dialog-information
MimeType=application/vnd.debian.binary-package
ServiceTypes=KonqPopupMenu/Plugin
Type=Service
X-KDE-Priority=TopLevel


[Desktop Action install]
Exec=konsole --hold -e sudo apt install %f
Icon=dialog-information
Name=Install

Файл ~ / .local / share / applications / install_deb_term.desktop :

[Desktop Entry]
Name=Install in terminal with apt
Comment=Install deb files in terminal with apt
Exec=konsole --hold -e sudo apt install %f
Icon=gdebi
Terminal=false
Type=Application
StartupNotify=true
Categories=GNOME;GTK;Settings;HardwareSettings;X-GNOME-Settings-Panel;System;

Все в порядке, за исключением того факта, что без аргумента - hold в консоли терминал закрывается слишком быстро (что плохо в случае ошибки), а с этим аргументом терминал остается открытым с довольно неубедительным сообщением вроде такого:

 Setting up <whatever_program> ...

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


Могу ли я получить сообщение «ОК» в конце процесса установки с помощью apt ? Может быть, через сценарий, содержащий команду apt ?


Обновление:

После комментариев @DKBose: изменение ~ /.bashrc как в этот ответ. Я получаю желаемое всплывающее уведомление с помощью команды в терминале, например

sudo apt install / path / to / deb; предупреждение

, но не со строкой

Exec = konsole --hold -e sudo apt install% f; alert

в файлах выше (установка работает, но без всплывающего окна).

Чтобы аргумент alert работал, требовалась установка libnotify-bin .

3
задан 12 December 2018 в 15:26

1 ответ

В этом ответе рассматривается проблема установки файла .deb с помощью apt install через сервисное меню в Kubuntu 18.04.

Сначала мы скачиваем небольшой .deb, gcolor2, которого нет в бионических репозиториях, используя ссылку, предоставленную N0rbert здесь.

~/Downloads $ wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcolor2/gcolor2_0.4-2.1ubuntu1_amd64.deb

Далее, на основе файла сервисного меню .desktop в вопросе и комментариев muru, следующий файл сервисного меню .desktop, ~/.local/share/kservices5/ServiceMenus/install -deb.desktop был создан:

[Desktop Entry]
Actions=install-deb
Icon=dialog-information
MimeType=application/vnd.debian.binary-package
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
X-KDE-Priority=TopLevel

[Desktop Action install-deb]
Name=install-deb
Exec=konsole --hold -e bash -ic 'sudo apt install %f && notify-send --expire-time=50000 "DONE"'

С этого момента, если щелкнуть правой кнопкой мыши файл .deb в Dolphin, контекстное меню предлагает «установить-deb» в качестве одного из вариантов. Выбор «install-deb» откроет konsole и запустит sudo apt install %f, где %f в данном случае относится к gcolor .deb загружен через wget.

Вот как выглядит вывод консоли:

[sudo] password for dkb: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'gcolor2' instead of '/home/dkb/Downloads/gcolor2_0.4-2.1ubuntu1_amd64.deb'
The following NEW packages will be installed:
  gcolor2
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/25.4 kB of archives.
After this operation, 112 kB of additional disk space will be used.
Get:1 /home/dkb/Downloads/gcolor2_0.4-2.1ubuntu1_amd64.deb gcolor2 amd64 0.4-2.1ubuntu1 [25.4 kB]
Selecting previously unselected package gcolor2.
(Reading database ... 257481 files and directories currently installed.)
Preparing to unpack .../gcolor2_0.4-2.1ubuntu1_amd64.deb ...
Unpacking gcolor2 (0.4-2.1ubuntu1) ...
Setting up gcolor2 (0.4-2.1ubuntu1) ...
Processing triggers for desktop-file-utils (0.23-1ubuntu3.18.04.2) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for mime-support (3.60ubuntu1) ...

После завершения установки konsole будет иметь надпись «Готово» в заголовке, но останется открытой, пока не будет закрыта с помощью оконного менеджера. Кроме того, из-за бита notify-send уведомление будет отображаться в течение указанного количества миллисекунд. (Я не знаю почему, но --urgency=critical не сохраняет уведомление.)


kdialog --passivepopup "любая текстовая строка" кажется более подходящей для этой цели, чем уведомление-отправка.

2
ответ дан 27 May 2020 в 14:27

Другие вопросы по тегам:

Похожие вопросы: