Una parte importante dell'amministrazione delle macchine Linux, in particolare le macchine remote, è la gestione e l'installazione del software. Quando qualcosa va storto con un'applicazione locale o quando qualcosa nel filesystem si rompe e deve essere riparato, spesso vorrai inviare aggiornamenti senza dover percorrere molte miglia per sederti davanti a uno schermo fisico. Come spiego nel mio corso Pluralsight Manutenzione e risoluzione dei problemi del sistema Linux, molti problemi possono essere risolti ovviamente tramite gli script Bash, ma ci sono ancora molti casi in cui non c'è alternativa a un buon binario vecchio stile.
Immagina che alcuni dei tuoi sistemi remoti necessitino dell'installazione di nuove applicazioni, quindi i membri del team che utilizzano quei computer saranno in grado di svolgere alcune funzioni aziendali. Essere in grado di sfruttare l'integrazione e l'automazione di uno dei principali sistemi di repository Linux, come Debian o RPM, può rendere le tue attività di amministrazione molto più semplici.
Come Linus Torvalds non si stanca mai di ricordarci, il problema con molti sistemi di gestione del software Linux è che ci sono troppi sistemi di gestione del software Linux. Nel corso degli anni, lo sviluppo di app e persino l'adozione di Linux sono stati complicati dal fatto che tutto il tempo e il lavoro che investi nella preparazione del tuo software, ad esempio, per i repository Debian, non ti aiuteranno se vuoi inserirli nei sistemi RPM. E nessuno dei due aiuterà Zypper Manager di SUSE.
Una soluzione promettente al problema del silo software è distribuire applicazioni con i propri ambienti autonomi che funzioneranno su qualsiasi distribuzione Linux. Un'opzione di uno standard in questo campo giovane e in crescita è AppImage.
Lavorare con AppImages
Più risorse Linux
- Comandi Linux cheat sheet
- Cheat sheet sui comandi avanzati di Linux
- Corso online gratuito:Panoramica tecnica RHEL
- Cheat sheet della rete Linux
- Cheat sheet di SELinux
- Cheat sheet dei comandi comuni di Linux
- Cosa sono i container Linux?
- I nostri ultimi articoli su Linux
Sono all-in su AppImage. Come gli altri sistemi di gestione dei pacchetti che ho menzionato, c'è molta complessità disponibile se lo desideri. Ma, in sostanza, AppImages è in realtà abbastanza semplice. Anziché utilizzare un repository come la maggior parte degli altri gestori di pacchetti, AppImages sono file singoli e autonomi che possono essere inviati direttamente o condivisi tramite un sito Web.
Ecco un'illustrazione della sua bellezza. Mentre stavo giocando con AppImages, mi sono imbattuto in una discussione molto vecchia su un forum tecnologico che mi ha portato a un progetto GitHub altrettanto vecchio e abbandonato e ai file YAML e ricetta associati. Sono stati progettati per costruire automaticamente l'infrastruttura piuttosto complessa necessaria per preparare l'archivio necessario per generare un pacchetto AppImage. Sebbene quell'infrastruttura sia stata costruita per funzionare su una versione di Ubuntu di cinque anni fa, quando ho messo tutto insieme ed ho eseguito appimagetool
comando contro di esso, ha creato un file AppImage che ha funzionato perfettamente sul mio desktop attuale. Non credo che ci siano troppi progetti GitHub di cinque anni di tale complessità che potrebbero essere eseguiti utilizzando altre tecnologie senza una seria rielaborazione.
Ma non ho intenzione di andarci. Invece, ti mostrerò come funziona con un'applicazione Hello World molto semplice. Innanzitutto, assicurati che il pacchetto AppStream sia installato in locale.
Per il sistema basato su Debian, eseguire:
$ sudo apt install appstream
E per i sistemi RPM, usa:
$ sudo dnf install appstream
Clona il repository Git a cui si fa riferimento in questo articolo, su cui ho basato questo esempio:
$ git clone https://github.com/boolean-world/appimage-resources
$ cd appimage-resources
$ ls hello-world-appimage
Quindi, cd
nella nuova directory creata da Git e dai un'occhiata in giro. Ci sono due directory qui. Usa hello-world-appimage
; l'altro è un progetto più complesso e dovresti provare anche tu.
Il helloworld.desktop
file è ciò che i sistemi GUI di Linux leggono per sapere come gestire il modo in cui presentano un'icona sul desktop. A quanto pare, il modo in cui il file è attualmente scritto ti darà problemi un po' più tardi, quindi apporta una piccola modifica:aggiungi un Categories=
riga e assegnagli il valore GNOME
. E non dimenticare il punto e virgola alla fine:
$ nano hello-world-appimage/helloworld.desktop
add Categories=GNOME;
Scarica una copia precompilata di appimagetool
binario dal progetto AppImage GitHub. Assicurati di visitare il sito GitHub:c'è un sacco di documentazione e risorse eccellenti lì. Una volta scaricato il binario, rendi eseguibile il file e puntalo su hello-world-appimage
directory. Ma prima devi dirgli quale architettura vuoi. Per qualche motivo, uno strumento con un nome che termina con x86_64
è tutto traballante quando si tratta di scegliere se creare un'applicazione usando x86_64 o meno (non sono sicuro di cosa stia succedendo lì):
$ 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
Se non vedi alcun messaggio di errore arrabbiato, sei pronto per provarci:
$ ls
$ ./hello-world-appimage-x86_64.AppImage
Conclusione
AppImage è una scelta incredibilmente efficace per la gestione dei pacchetti. Mentre lo esplori, penso che scoprirai che è un'ottima alternativa alle distribuzioni Linux predefinite fornite.