Ubuntu – Obtenez un message correct lors de l’installation de deb avec apt dans le terminal (à partir du menu contextuel ou cliquez sur)

je trouve apt dans le terminal comme le meilleur moyen d’installer un programme à partir d’un paquet deb. Comme je le préfère aux autres outils de l’interface graphique, je le souhaite dans le menu contextuel des fichiers deb ou en tant que lanceur parmi les applications afin d’installer le deb en l’exécutant avec (double) clic.

Dans Kubuntu avec Dolphin, j’ai créé un menu de service pour créer ce menu contextuel, également un fichier de bureau dans ~/.local/share/applications pour réaliser la même action en exécutant le fichier deb.

Le fichier ~/.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
 

Le fichier ~/.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;
 

Tout va bien, sauf que sans le --hold argument dans konsole le terminal se ferme rapidement (ce qui n’est pas bon en cas d’erreur), tandis qu’avec cet argument le terminal reste ouvert avec un message peu concluant comme ceci:

  Setting up <whatever_program> ...
 

ce qui n’est pas ce que j’attends si l’installation s’est bien passée.


Puis-je obtenir un message « OK » à la fin du processus d’installation avec apt ? Peut-être grâce à un script contenant le apt commander?


Mettre à jour:

Suite aux commentaires de @DKBose: modification ~/.bashrc comme dans cette réponse, j’obtiens la fenêtre de notification souhaitée avec une commande dans un terminal comme

 sudo apt install /path/to/deb; alert 

maisne pasavec la ligne

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

dans les fichiers ci-dessus (l’installation fonctionne, mais pas de popup).

Pour le alert argument pour travailler du tout, l’installation de libnotify-bin était nécessaire.

Meilleure réponse

  • Cette réponse résout le problème d’installation d’un fichier .deb à l’aide apt install via un menu de service dans Kubuntu 18.04.

    Tout d’abord, nous téléchargeons un petit .deb, gcolor2 qui n’est pas dans les dépôts bioniques, en utilisant le lien fourni par N0rbert ici.

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

    Ensuite, basé sur le fichier .desktop du menu de service dans la question et les commentaires de muru, le fichier .desktop du menu de service suivant, ~/.local/share/kservices5/ServiceMenus/install-deb.desktop a été construit:

     [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"'
     

    Désormais, si l’on clique avec le bouton droit sur un fichier .deb dans Dolphin, le menu contextuel propose « install-deb » comme l’une des options. La sélection de « install-deb » s’ouvrira konsole et courir sudo apt install %f , où %f dans ce cas, se réfère à la gcolor .deb téléchargé via wget .

    Voici à quoi ressemble la sortie de konsole:

     [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) ...
     

    Une fois l’installation terminée, konsole aura « Terminé » dans sa barre de titre mais restera ouvert jusqu’à ce qu’il soit fermé via le gestionnaire de fenêtres. De plus, en raison de la notify-send bit, une notification sera visible pour le nombre de millisecondes spécifié. (Je ne sais pas pourquoi mais --urgency=critical ne fait pas persister la notification.)


     kdialog --passivepopup "whatever text string" semble mieux adapté à cette fin que notify-send