Shell Scripting per crear un fitxer .desktop per a una aplicació portable

Bash Shell Scripting: Crear un Enllaç d'una App portable.

Bash Shell Scripting: Crear un Enllaç d'una App portable.

L'acabo Shell aplicat als Sistemes Operatius es refereix a l'intèrpret de comandaments de el Sistema Operatiu. En general, és una interfície de text d'altes prestacions que es manifesta en forma de Terminal (Consola) i que serveix essencialment per a 3 importants àrees de treball: Administrar el Sistema Operatiu, Executar aplicacions i interactuar amb elles, i servir d'entorn bàsic de programació. I Scripting es refereix a la tècnica de dissenyar i crear Scripts mitjançant un Shell.

Els Scripts de Shell són extremadament útils. És bona idea escriure aquelles necessitats que tinguem i després editar scripts que realitzen aquest treball per nosaltres. I en aquest cas en particular el farem servir per crear enllaços (accessos directes) d'aplicacions al menú d'inici i l'escriptori d'apps portables, acte-executables i auto-contingudes.

Aplicació Alacarte de Linux

Introducció

Moltes vegades hem descarregat i instal·lat aplicacions que estant o no en els repositoris de la nostra Distribució GNU / Linux a l'instal·lar-la o executar-la mateixa no crea els respectius fitxers .desktop de la mateixa o en el millor dels casos no col·loca el mateix en el camí correcte perquè després d'actualitzar-la Menú d'Inici sigui llegit i mostrat en la llista de paquets instal·lats de el Sistema Operatiu.

Per tant, ens toca apel·lar a l'ús d'aplicacions com «Alacarte» o «Menulibre» per manualment crear el respectiu enllaç al Menú d'Inici.

I encara que aquestes aplicacions gràfiques són molt senzilles d'utilitzar per a aquest fi, mai aquesta altres saber crear el nostre propi script perquè realitzi aquesta operació i així conèixer des de dins com es realitza aquesta operació dins de el Sistema Operatiu.

Si vostè no està familiaritzat amb la creació i / o ús d'arxius Shell Scripting pot llegir aquesta publicació anterior (Shell, Bash i Scripts) per començar i després en cas de ser necessari explorar totes les publicacions a l'respecte sobre el tema.

Aplicació Menú Lliure de Linux

Creant el programa usant Shell Scripting

Assumirem per qüestions d'espai que ja sabem crear un script des de zero, és a dir, ja sabem crear la capçalera o parts inicials del nostre script i anirem directe a el contingut de la mateixa.

No obstant això si tenen dubtes a l'respecte revisin aquesta publicació anterior (Construeix pas a pas el teu programa utilitzant Shell Scripting - Part 1) per aclarir dubtes.

Contingut


#!/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
###############################################################################
Contingut de l'Script en Mousepad

Contingut de l'Script en Mousepad

Comentaris

Com podran analitzar a partir d'el codi i ometent la capçalera el següent script realitza les següents operacions de forma automatitzada:

  1. Validar que aquest sent usat com super-usuari root o permís de super-usuari root.
  2. Esborrar anteriors enllaços de l'aplicació que hagin estat creats per una versió anterior.
  3. Crear el nou arxiu .desktop (enllaç) de l'aplicació en la seva pròpia carpeta dins de l'home de l'usuari.
  4. Assignar-li a l'usuari permís de propietari sobre l'arxiu creat.
  5. Assignar-li a l'arxiu creat els permisos de lectura / escriptura / execució adequats.
  6. Crear els nous enllaços simbòlics a les rutes necessàries.
  7. Actualitzar el menú d'inici perquè visualitzi el fitxer .desktop creat.
  8. Executar un URL específica sobre l'aplicació creada.

Recomanació

Es recomana que aquest arxiu sigui creat dins de la carpeta que conté a l'aplicació / executable en qüestió amb el seu respectiu icona (imatge / logo) especificat dins de la mateixa i que aquesta carpeta es trobi en la ruta /opt en comptes de la ruta `echo $HOME`/mi_app/ És a dir, /home/mi_usuario/mi_app.

Espero que aquest petit script els permeti solucionar les seves necessitats a l'respecte sobre aquest tema! Fins al proper article.

Mentre els deixo aquest enllaç a la web oficial de Gnome sobre el Tema i aquest vídeo:


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   Guillermo va dir

    Moltes gràcies per aquest i tots els teus articles.
    Un dubte: Com, en cas de no ser root, es podria demanar la clau ensenyant asteriscs per prosseguir l'execució amb els permisos adequats?

    1.    Eng. Jose Albert va dir

      Podries crear una interfície amb dialog i aplicar-li a la caixa de sol·licitud de contrasenya la propietat de xifrar la clau! Recordo bé que existeix aquesta propietat en dialog.

      En aquesta entrada anterior, algú va fer una cosa semblant però gràficament però els arxius adjunts, és a dir, el codi usat ja no està disponible: https://blog.desdelinux.net/script-avanzado-en-bash-bashmd5-para-proteger-algo-explicacion-detallada/

  2.   Guillermo va dir

    Gràcies, seria bo no haver de sortir de l'entorn bash per si s'executa sense interfície gràfica, en aquest cas no importa fins i tot si no hi ha asteriscs ni res, que demani la clau i no aparegui cap text. Ummm, el trobo a http://www.tormentadebits.com/2012/08/scripts-bash-introducir-password-sin-mostrarlo-en-pantalla.html