Shell Scripting pour créer un fichier .desktop pour une application portable

Scripting Bash Shell: créez un lien vers une application portable.

Scripting Bash Shell: créez un lien vers une application portable.

Le terme Shell appliqué aux systèmes d'exploitation fait référence à l'interpréteur de commandes du système d'exploitation. En général, il s'agit d'une interface texte haute performance qui se manifeste sous la forme d'un terminal (console) et qui sert essentiellement 3 domaines de travail importants: administrer le système d'exploitation, exécuter les applications et interagir avec elles, et servir de base programmation d'environnement. Et le script fait référence à la technique de conception et de création de scripts à l'aide d'un shell.

Les scripts Shell sont extrêmement utiles. C'est une bonne idée d'écrire les besoins que nous avons, puis de modifier les scripts qui font ce travail pour nous. Et dans ce cas particulier, nous l'utiliserons pour créer des liens (raccourcis) d'applications dans le menu Démarrer et le bureau d'applications portables, auto-exécutables et autonomes.

Application Linux Alacarte

Introduction

Plusieurs fois, nous avons téléchargé et installé des applications qui, étant ou non dans les référentiels de notre distribution GNU / Linux, lors de son installation ou de son exécution, il ne crée pas les fichiers .desktop respectifs du même ou dans le meilleur des cas, il ne le place pas dans le chemin correct de sorte qu'après la mise à jour du menu Démarrer, il soit lu et affiché dans la liste des packages installés du système d'exploitation.

Par conséquent, nous devons faire appel à l'utilisation d'applications telles que "Alacarte" ou "Menulibre" pour créer manuellement le lien correspondant dans le menu Démarrer.

Et bien que ces applications graphiques soient très simples à utiliser à cet effet, ce n'est jamais trop à savoir créer notre propre script pour effectuer cette opération et ainsi savoir de l'intérieur comment cette opération est effectuée dans le système d'exploitation.

Si vous n'êtes pas familiarisé avec la création et / ou l'utilisation de fichiers de script Shell, vous pouvez lis ça publication précédente (Shell, Bash et Scripts) pour commencer puis si nécessaire d'explorer toutes les publications sur le sujet.

Application de menu gratuit Linux

Création du programme à l'aide de Shell Scripting

Nous supposerons pour des raisons d'espace que nous savons déjà créer un script à partir de zéro, c'est-à-dire que nous savons déjà créer l'en-tête ou les parties initiales de notre script et nous irons directement à son contenu.

Cependant, si vous avez des doutes à ce sujet, vérifiez ceci publication précédente (Construisez votre programme étape par étape en utilisant Shell Scripting - Partie 1) pour clarifier les doutes.

teneur


#!/usr/bin/env bash
set -eou pipefail
IFS=$'\n\t'
setterm --reset
# NOMBRE: MI-APP LINUX POST INSTALL - SCRIPT BICENTENARIO (MIAPP-LPI-SB)
# VERSIÓN: 1.0+0
# TIPO DE PROGRAMA: SISTEMA EXPERTO
# FUNCIÓN: ASISTENTE TECNICO PARA S.O. GNU/LINUX BASADOS EN DEBIAN
# NOMBRE CODIGO: MIAPP (MIAPP-LPI-SB 1.0+0)
# PAIS ORIGEN: Mi país
# CREADO POR: Mi Nombre
# LICENCIA: Licencia Pública General de GNU 3.

###############################################################################
# INICIO DEL MODULO DE VALIDACION PERMISO DE SUPERUSUARIO (ROOT) SOBRE EL MIAPP-LPI-SB              
###############################################################################

# ESTE MODULO VALIDA QUE SOLO EL SUPERUSUARIO (USUARIO ROOT) PUEDA EJECUTAR
# EL LINUX POST INSTALL - SCRIPT BICENTENARIO.

clear

setterm -background red

if [[ "$(id -u)" != "0" ]]; then
   echo "ESTE SCRIPT DEBE SER EJECUTADO COMO ROOT"
   sleep 3
   clear      
  else
   echo "ESTE SCRIPT SERA EJECUTADO COMO SUPERUSUARIO (ROOT)"
   sleep 3
   clear
fi

###############################################################################
# FINAL DEL MODULO DE VALIDACION PERMISO DE SUPERUSUARIO (ROOT) SOBRE EL MIAPP-LPI-SB
###############################################################################


###############################################################################
# INICIO DEL MODULO DE ORDENES DE COMANDO DE POST INSTALACIÓN
###############################################################################

rm -f $HOME/mi_app/mi_app.desktop
rm -f $HOME/.local/share/applications/mi_app.desktop
rm -f $HOME/Desktop/mi_app.desktop
rm -f $HOME/Escritorio/mi_app.desktop
rm -f /usr/share/applications/mi_app.desktop

###############################################################################

echo "
[Desktop Entry]
Name=My Applicattions
GenericName=My Applicattions
GenericName[es]=Mi Aplicación
Comment=Mi Aplicación
Exec=/opt/mi_app/mi_app
Icon=`echo $HOME`/mi_app/icono_app.png
Terminal=false
Type=Application
Encoding=UTF-8
Categories=Network;Application;
MimeType=x-scheme-handler/mozilla;
X-KDE-Protocols=mozilla
" > `echo $HOME`/mi_app/mi_app.desktop

chown $USER:$USER -R `echo $HOME`/mi_app/mi_app.desktop

chmod 755 `echo $HOME`/mi_app/mi_app.desktop

ln -s `echo $HOME`/mi_app/mi_app.desktop $HOME/.local/share/applications/mi_app.desktop
ln -s `echo $HOME`/mi_app/mi_app.desktop $HOME/Desktop/mi_app.desktop
ln -s `echo $HOME`/mi_app/mi_app.desktop $HOME/Escritorio/mi_app.desktop
ln -s `echo $HOME`/mi_app/mi_app.desktop /usr/share/applications/mi_app.desktop

update-menus

###############################################################################

clear

su - $USER -c "xdg-open 'https://www.mi-app.com/'"

clear

echo ''
echo ''
echo '#------------------------------------------------------------------#'
echo '# GRACIAS POR USAR MI-APP LINUX POST INSTALL #'
echo '#------------------------------------------------------------------#'
echo ''
echo ''

sleep 3

###############################################################################
# FINAL DEL MODULO DE ORDENES DE COMANDO DE POST INSTALACIÓN
###############################################################################
Contenu du script sur le tapis de souris

Contenu du script sur le tapis de souris

Commentaires

Comme vous pouvez analyser à partir du code et en omettant l'en-tête, le script suivant effectue les opérations suivantes de manière automatisée:

  1. Vérifiez que vous êtes utilisé en tant que superutilisateur root ou superutilisateur root.
  2. Supprimez les liens précédents de l'application qui ont été créés par une version précédente.
  3. Créez le nouveau fichier .desktop (lien) de l'application dans son propre dossier dans la maison de l'utilisateur.
  4. Attribuez l'autorisation de propriétaire de l'utilisateur au fichier créé.
  5. Donnez au fichier créé les autorisations de lecture / écriture / exécution appropriées.
  6. Créez les nouveaux liens symboliques vers les itinéraires nécessaires.
  7. Mettez à jour le menu Démarrer pour afficher le fichier .desktop créé.
  8. Exécutez une URL spécifique sur l'application créée.

Recommandation

Il est recommandé que ce fichier soit créé dans le dossier contenant l'application / l'exécutable en question avec son icône respective (image / logo) qui y est spécifiée et que ledit dossier se trouve dans le chemin /opt au lieu de l'itinéraire `echo $HOME`/mi_app/ es decir, /home/mi_usuario/mi_app.

J'espère que ce petit script vous permettra de résoudre vos besoins à cet égard à ce sujet! Jusqu'à l'article suivant.

Pendant que je te laisse ça lien sur le site officiel de Gnome sur le sujet et cette vidéo:


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   Facture dit

    Merci beaucoup pour cela et tous vos articles.
    Une question: comment, si vous n'êtes pas root, pourriez-vous demander le mot de passe avec des astérisques pour continuer l'exécution avec les autorisations appropriées?

    1.    Ing. José Albert dit

      Vous pouvez créer une interface avec boîte de dialogue et appliquer à la boîte de demande de mot de passe la propriété de crypter la clé! Je me souviens bien que cette propriété existe en dialogue.

      Dans cet article précédent, quelqu'un a fait quelque chose de similaire mais graphiquement mais les fichiers joints, c'est-à-dire que le code utilisé n'est plus disponible: https://blog.desdelinux.net/script-avanzado-en-bash-bashmd5-para-proteger-algo-explicacion-detallada/

  2.   Facture dit

    Merci, ce serait bien de ne pas avoir à quitter l'environnement bash au cas où il fonctionnerait sans interface graphique, dans ce cas, peu importe même s'il n'y a pas d'astérisques ou quoi que ce soit, qu'il demande la clé et qu'aucun texte n'apparaisse. Ummm, je le trouve dans http://www.tormentadebits.com/2012/08/scripts-bash-introducir-password-sin-mostrarlo-en-pantalla.html