Los paquetes AppImage realmente NO necesitan ser instalados, porque son un único archivo, que le das permisos y lo ejecutas, ya que contiene, o debería contener, todo lo necesario para ser ejecutado.
Hasta ahora para instalar un AppImage tenía que hacer estas cosas en cada script:
- Instalar los paquetes mínimos para asegurarnos que nos funcionen los AppImage, básicamente FUSE (no todos lo necesitan, pero mejor tenerlo instalado).
- Crear la carpeta /opt/appimages si es el primer paquete de este tipo tipo que "instala" RetroMultiInstaller.
- Descargar el AppImage.
- Dar permisos de escritura al AppImage.
- Crear la carpeta AppImage.home para que guarde ordenadamente los archivos que pueda generar.
- Crear el acceso directo.
Hacer esto en cada script no es una buena práctica, es espaguetización, que ensucia el código y lo hace propenso a errores porque algo se me olvide, así que mejor vamos a hacer un nuevo script común para esta tarea: ./commonscripts/appimageinstaller.sh
#/bin/bash
# $1: toolname
# $2: url
pwddir=$(pwd)
$pwddir/../commonscripts/instalator.sh wget unzip fuse libfuse2t64
source $pwddir/../commonscripts/makeopenchangetodir.sh /opt/appimages
wget -N ${2} -O ${1}.AppImage
chmod +x ${1}.AppImage
source $pwddir/../commonscripts/makeopenchangetodir.sh /opt/appimages/${1}.AppImage.home
cd $pwddir
$pwddir/../commonscripts/createshortcuts.sh ${1}
Como veis hay que pasarle dos parámetros: el nombre de la aplicación y la URL de descarga, así podría ser un script de instalación que explote el nuevo script común:
#/bin/bash
toolname="amspirit"
pwddir=$(pwd)
user="AMSpiriT-Emulator"
repo="amspirit-releases"
version=$(${pwddir}/../commonscripts/githubversion.sh ${user} ${repo} | sed 's/Lite-//')
arch=`uname -m`
url="https://github.com/${user}/${repo}/releases/download/Lite-${version}/amspirit-lite-qt-${version}-linux-${arch}.AppImage"
../commonscripts/appimageinstaller.sh ${toolname} ${url}
Realmente podríamos crear todos los scripts para instalar AppImage a partir de este simplemente cambiando los valores de user y repo, lógicamente si habría que crear para cada uno el acceso directo y el icono en la carpeta correspondiente.
Para que createshortcuts.sh cree el acceso directo, debe estar incluido en archivo ${toolname}.desktop y ${toolname}.png correspondientes en la carpetas shotcuts en su ruta correcta. (Cambiar ${toolname} por el valor que le damos en el script, en este caso "amspirit").
Como veis también en el script de este programa en concreto he incluido llamada al script para calcular el número de la última versión en github que ya vimos hace un par de meses.
Si estuviera el appimage en otro sitio o no funcionará por no tener el autor activa la generación de versiones automática, simplemente cambiaríamos esta línea por:
version="1.2.3"
Donde 1.2.3 deberíamos cambiar por el número exacto de versión, con el inconveniente que tendremos que cambiar el valor cada vez que salga una nueva versión, es decir, ya evidentemente ya no es automático.







.jpg)