Una gran parte de la administración de máquinas Linux, especialmente máquinas remotas, es administrar e instalar software. Cuando algo sale mal con una aplicación local o cuando algo en el sistema de archivos se rompe y necesita reparación, a menudo querrá enviar actualizaciones sin tener que viajar muchas millas para sentarse frente a una pantalla física. Como explico en mi curso de mantenimiento y resolución de problemas del sistema Linux de Pluralsight, muchos problemas se pueden resolver a través de scripts de Bash, por supuesto, pero todavía hay muchos casos en los que no hay alternativa a un buen binario antiguo.
Imagine que algunos de sus sistemas remotos necesitan que se instalen nuevas aplicaciones, por lo que los miembros del equipo que usan esas computadoras podrán realizar alguna función comercial. Ser capaz de aprovechar la integración y automatización de uno de los principales sistemas de repositorio de Linux, como Debian o RPM, puede hacer que sus tareas de administración sean mucho más fáciles.
Como Linus Torvalds nunca se cansa de recordarnos, el problema con muchos sistemas de gestión de software de Linux es que hay demasiados sistemas de gestión de software de Linux. A lo largo de los años, el desarrollo de aplicaciones e incluso la adopción de Linux se han complicado por el hecho de que todo el tiempo y el trabajo que invierte en preparar su software para, por ejemplo, repositorios de Debian, no lo ayudarán si desea incorporarlos a los sistemas RPM. Y tampoco ayudará al administrador Zypper de SUSE.
Una solución prometedora para el problema del silo de software es distribuir aplicaciones con sus propios entornos autónomos que funcionarán en cualquier distribución de Linux. Una opción de estándar en este campo joven y en crecimiento es AppImage.
Trabajar con imágenes de aplicaciones
Más recursos de Linux
- Hoja de trucos de los comandos de Linux
- Hoja de trucos de comandos avanzados de Linux
- Curso en línea gratuito:Descripción general técnica de RHEL
- Hoja de trucos de red de Linux
- Hoja de trucos de SELinux
- Hoja de trucos de los comandos comunes de Linux
- ¿Qué son los contenedores de Linux?
- Nuestros últimos artículos sobre Linux
Estoy all-in en AppImage. Al igual que los otros sistemas de administración de paquetes que he mencionado, hay mucha complejidad disponible si lo desea. Pero, en esencia, las AppImages son en realidad bastante sencillas. En lugar de trabajar a través de un repositorio como la mayoría de los otros administradores de paquetes, AppImages son archivos únicos e independientes que se pueden enviar directamente o compartir a través de un sitio web.
Aquí hay una ilustración de su belleza. Mientras jugaba con AppImages, me encontré con una discusión muy antigua en un foro de tecnología que me llevó a un proyecto de GitHub igualmente antiguo y abandonado y a los archivos YAML y de recetas asociados. Fueron diseñados para construir automáticamente la infraestructura bastante compleja requerida para preparar el archivo necesario para generar un paquete de AppImage. Aunque toda esa infraestructura se creó para ejecutarse en una versión de Ubuntu de hace cinco años, cuando lo armé todo y ejecuté la appimagetool
comando en su contra, creó un archivo AppImage que funcionó a la perfección en mi escritorio actual. No creo que haya demasiados proyectos de GitHub de cinco años de esa complejidad que puedan ejecutarse usando otras tecnologías sin una reelaboración seria.
Pero no voy a ir allí. En su lugar, les mostraré cómo funciona con una aplicación Hello World muy simple. Primero, asegúrese de que el paquete AppStream esté instalado localmente.
Para un sistema basado en Debian, ejecute:
$ sudo apt install appstream
Y para sistemas RPM, use:
$ sudo dnf install appstream
Clone el repositorio de Git al que se hace referencia en este artículo, en el que basé este ejemplo:
$ git clone https://github.com/boolean-world/appimage-resources
$ cd appimage-resources
$ ls hello-world-appimage
A continuación, cd
en el nuevo directorio creado por Git y echa un vistazo. Hay dos directorios aquí. Usa hello-world-appimage
; el otro es un proyecto más complejo, y deberías considerar intentarlo también.
El helloworld.desktop
file es lo que leen los sistemas GUI de Linux para saber cómo manejar la forma en que presentan un icono de escritorio. Como resultado, la forma en que el archivo está escrito actualmente le dará problemas un poco más tarde, así que haga una edición menor:agregue un Categories=
línea y darle el valor GNOME
. Y no olvides el punto y coma al final:
$ nano hello-world-appimage/helloworld.desktop
add Categories=GNOME;
Descarga una copia precompilada de appimagetool
binario del proyecto AppImage GitHub. Asegúrese de visitar el sitio de GitHub:allí hay mucha documentación y recursos excelentes. Una vez que se descarga el binario, haga que el archivo sea ejecutable y apúntelo a hello-world-appimage
directorio. Pero primero, debe decirle qué arquitectura desea. Por alguna razón, una herramienta con un nombre que termina en x86_64
es todo inestable cuando se trata de elegir si construir una aplicación usando x86_64 o no (no estoy seguro de lo que está pasando ahí):
$ wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
$ chmod +x appimagetool-x86_64.AppImage
$ ARCH=x86_64 ./appimagetool-x86_64.AppImage hello-world-appimage
Si no ve ningún mensaje de error enojado, está todo listo para intentarlo:
$ ls
$ ./hello-world-appimage-x86_64.AppImage
Conclusión
AppImage es una opción increíblemente eficaz para la gestión de paquetes. A medida que lo explore, creo que encontrará que es una excelente alternativa a las distribuciones predeterminadas de Linux que brindan.