GNU/Linux >> Linux Esercitazione >  >> Linux

Utilizzo di AppImage per la gestione dei pacchetti Linux

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.


Linux
  1. Suggerimenti Linux per l'utilizzo di cron per pianificare le attività

  2. Gestione pacchetti Linux con apt

  3. Come impacchettare applicazioni Python per Linux

  4. 4 strumenti per la creazione di sistemi Linux embedded

  5. Utilizzo delle variabili in SQLCMD per Linux

Nozioni di base su Linux:30 esempi di comandi YUM per la gestione dei pacchetti Linux

Utilizzo di ifstat per le statistiche di rete Linux

I 15 migliori sistemi di gestione di database per desktop Linux

Comandi per la gestione dei processi in Linux

I 15 migliori sistemi di gestione dei documenti per il sistema Linux

Come elencare i pacchetti installati in Linux utilizzando la gestione dei pacchetti