Получить ок сообщение при установке 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
аргумент в konsole
терминал быстро закрывается (что не хорошо в случае ошибки), в то время как с этим аргументом терминал остается открытым с довольно неубедительным сообщением, например:
Setting up <whatever_program> ...
это не то, что я ожидаю, если установка прошла нормально.
Могу ли я получить сообщение "ОК" в конце процесса установки с apt
? Может быть, через скрипт, содержащий apt
команда?
Обновить:
Следующие комментарии @DKBose: изменение ~/.bashrc
так как в этом ответе я получаю желаемое всплывающее уведомление с командой в терминале, как
sudo apt install /path/to/deb; alert
но не с линией
Exec=konsole --hold -e sudo apt install %f; alert
в файлах выше (установка работает, но не всплывающее окно).
Для alert
аргумент работать вообще, установка libnotify-bin
был нужен.
0 ответов
В этом ответе рассматривается проблема установки файла.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, в контекстном меню в качестве одного из вариантов будет предложено "install-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
bit, уведомление будет отображаться в течение указанного количества миллисекунд. (Не знаю почему, но
--urgency=critical
не заставляет уведомление сохраняться.)
kdialog --passivepopup "whatever text string"
кажется лучше подходит для этой цели, чем
notify-send
.