Tutte le moderne distribuzioni linux organizzano il software in pacchetti che contengono binari delle applicazioni, file, metadati e informazioni sulle dipendenze del pacchetto, possibili conflitti con altri pacchetti ecc. Il gestore di pacchetti di base di Rhel è chiamato rpm stesso, ed è lo strumento utilizzato anche da dnf
, il gestore di pacchetti di livello superiore, in grado di gestire le dipendenze. Una tecnologia relativamente recente, flatpak
, installiamo anche le applicazioni sandbox insieme ai loro runtime.
In questo tutorial imparerai:
- I tre modi principali per installare un pacchetto utilizzando rpm
- Come installare i pacchetti usando dnf
- Come installare le applicazioni graficamente dall'utilità gnome-software
- Come installare applicazioni sandbox con flatpak

Il manuale del gestore di pacchetti rpm
Requisiti e convenzioni software utilizzati
Categoria | Requisiti, convenzioni o versione del software utilizzata |
---|---|
Sistema | RHEL 8 / CentOS 8 |
Software | Le utilità utilizzate in questo tutorial sono installate per impostazione predefinita, non è necessario alcun software aggiuntivo. |
Altro | Autorizzazione a eseguire il comando con privilegi di root. |
Convenzioni | # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando sudo comando$ – richiede che i comandi linux dati vengano eseguiti come un normale utente non privilegiato |
Cos'è un pacchetto?
In RHEL 8 / CentOS 8, come in tutte le moderne distribuzioni Linux, il software è organizzato in repository, sotto forma di pacchetti. Ma cos'è esattamente un pacchetto? Un pacchetto è fondamentalmente un archivio compresso che contiene i file associati a un software specifico, come binari e librerie compilati, oltre a metadati e istruzioni su dove e come tali file devono essere installati sul sistema, le dipendenze esterne di cui il software ha bisogno per funzionare correttamente e Di Più. RHEL e CentOS usano il rpm
formato di pacchetto inventato dalla stessa Red Hat:in questo tutorial vedremo come installare e gestire i pacchetti rpm su Red Hat Enterprise Linux 8.
RPM:Red Hat Package Manager e yum/dnf
Per facilitare la gestione dei pacchetti rpm, il rpm package manager
è stato creato. Sebbene sia molto potente, è focalizzato su singoli pacchetti, quindi non è in grado di risolvere le dipendenze. Per gestire le relazioni tra i pacchetti ed evitare il famigerato inferno delle dipendenze, prima yum
gestore di pacchetti (Yellow Updater Modified) e poi la sua evoluzione, dnf
(Dandified YUM), sono stati adottati. Dnf è stato introdotto per la prima volta in Fedora 18 e sostituisce yum nell'ultima versione di Red Hat Enterprise Linux.
Installazione di un pacchetto con rpm
Una delle operazioni più basilari che possiamo eseguire con rpm è l'installazione di un pacchetto. Come detto prima, funzionerà solo se il pacchetto non ha dipendenze esterne, poiché rpm non è in grado di gestirlo. Ci sono fondamentalmente tre modi per installare un pacchetto con rpm:corrispondono rispettivamente a -i
, -U
e -F
opzioni.
Per installare un nuovo pacchetto possiamo eseguire rpm con -i
opzione (abbreviazione di --install
). La sintassi è molto semplice:
$ sudo rpm -i packagename.rpm
Quando eseguiamo il comando sopra, il pacchetto specificato viene installato solo se non è già installato sul sistema. Se proviamo a installare un pacchetto già installato (gedit in questo caso), riceviamo un errore:
$ sudo rpm -i gedit-3.28.1-3.el8.x86_64.rpm package gedit-2:3.28.1-3.el8.x86_64 is already installed
Si noti che qui per lo stesso "pacchetto" si intende la stessa versione esatta. Questo metodo di installazione è quello consigliato da usare quando si esegue l'installazione di un nuovo kernel:in tali situazioni, il nuovo kernel coesisterà con il/i vecchio/i, quindi nel caso qualcosa non funzioni come previsto, sarà possibile usarli come ripiego.
Le cose vanno diversamente quando usiamo il -U
opzione, che è l'abbreviazione di --upgrade
. In questo caso se un pacchetto non esiste già nel sistema, viene installato; se esiste una versione precedente del pacchetto, il pacchetto viene aggiornato. Ciò significa che dopo l'installazione della versione più recente del pacchetto, le versioni precedenti vengono rimosse. Come abbiamo detto sopra, l'aggiornamento di un software fondamentale come il kernel in essere è altamente sconsigliato:è meglio essere assolutamente sicuri che il nuovo kernel funzioni come previsto prima di rimuovere le versioni precedenti.
Il -F
(o –freshen) fa qualcosa di diverso. Quando viene utilizzato, vengono aggiornati solo i pacchetti già esistenti. Se una versione precedente del pacchetto che stiamo cercando di installare non esiste già nel nostro sistema, non è installata.
Installazione di un pacchetto da una posizione remota
Con rpm
è anche possibile installare un pacchetto che non è sul nostro filesystem locale. Supponiamo ad esempio di voler installare un pacchetto accessibile tramite il protocollo ftp; il comando da eseguire sarebbe il seguente:
$ sudo rpm -i ftp://ftp.someaddress.com/package.rpm
È anche possibile fornire un nome utente e una password se è richiesta l'autenticazione, includendo tali informazioni nell'indirizzo:
$ sudo rpm -i ftp://username:[email protected]/package.rpm
Installazione di un pacchetto con dnf
Sebbene dnf
opera su rpm, fornisce funzionalità molto utili come la gestione delle dipendenze software e la possibilità di installare software dai repository di distribuzione. I metadati archiviati in un pacchetto rpm, tra le altre cose, specificano quali altri pacchetti devono essere installati affinché il software funzioni e, eventualmente, quali pacchetti potrebbero entrare in conflitto con esso. Dnf, ovvero si occupa di eseguire tutte le operazioni necessarie, dopo aver ricevuto la conferma dell'utente. Supponiamo ad esempio di voler installare vim
pacchetto utilizzando dnf; correremmo:
$ sudo dnf install vim
Dopo aver eseguito il comando precedente, sullo schermo vengono visualizzate le operazioni da eseguire e l'elenco delle dipendenze da installare:
Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: vim-enhanced x86_64 2:8.0.1763-7.el8 rhel-8-for-x86_64-appstream-beta-rpms 1.4 M Installing dependencies: gpm-libs x86_64 1.20.7-15.el8 rhel-8-for-x86_64-appstream-beta-rpms 39 k vim-filesystem noarch 2:8.0.1763-7.el8 rhel-8-for-x86_64-appstream-beta-rpms 47 k vim-common x86_64 2:8.0.1763-7.el8 rhel-8-for-x86_64-appstream-beta-rpms 6.3 M Transaction Summary ================================================================================ Install 4 Packages Total download size: 7.8 M Installed size: 30 M Is this ok [y/N]:
Se si esegue dnf da uno script destinato all'esecuzione automatica, -y
opzione (forma abbreviata di --assumeyes
) può essere utilizzato:in questo modo tutte le risposte riceveranno automaticamente un "sì" e sarà richiesta l'interazione dell'utente.
Come rpm, dnf ci consente di installare un pacchetto che si trova su un URL remoto; non ci resta che specificare quest'ultimo:
$ sudo dnf install http://path/to/package.rpm
Installazione grafica di un pacchetto
Quando si esegue GNOME
ambiente desktop, è anche possibile installare un pacchetto graficamente, utilizzando il gnome-software
applicazione. Se il pacchetto esiste nei repository di distribuzione possiamo semplicemente eseguire una ricerca dell'applicazione che vogliamo installare utilizzando il campo di ricerca:

Interfaccia di ricerca del software Gnome
Successivamente, possiamo fare clic sul pulsante "Installa" per installare effettivamente l'applicazione:

Interfaccia di installazione del software Gnome
Quando si installa un pacchetto con questo metodo viene utilizzata una procedura diversa. Le applicazioni software gnome sono un frontend per packagekit
che è esso stesso un frontend di alto livello che funziona come un'astrazione sul gestore di pacchetti nativo di una distribuzione:il suo obiettivo principale è uniformare le installazioni su diverse distribuzioni. È anche importante notare che i pacchetti installati in questo modo non appariranno nella cronologia dnf, poiché packagekit non usa quest'ultimo sotto il cofano.
Installazione di software con flatpack
Su RHEL 8 / CentOS 8, un altro modo possibile per installare il software, sia dall'applicazione gnome-software, sia dalla riga di comando, è utilizzare i flatpack. I flatpack forniscono ambienti sandbox all'interno dei quali viene fornito un software insieme a tutte le sue dipendenze:questo rende possibile eseguire una specifica versione di un programma su tutte le distribuzioni che supportano questa tecnologia, indipendentemente dalle librerie native. Il repository principale dei flatpack è flathub. Installare un flatpack da questo sito con il software gnome è davvero semplice. Tutto quello che dobbiamo fare è cercare l'applicazione che vogliamo installare e fare clic su install
pulsante.

Flathub è il repository principale utilizzato per i flatpak
Il software Gnome dovrebbe avviarsi automaticamente:in caso contrario, basta aprire il file scaricato con esso. Dopo aver fatto clic sul pulsante di installazione e fornito la nostra password amministrativa, se richiesta, il pacchetto verrà installato.

Installazione del software Gnome flatpak
Una volta installato un flatpak in questo modo, il repository flathub viene automaticamente aggiunto come sorgente flatpak, quindi diventa possibile cercare altre applicazioni in esso contenute, direttamente dall'interfaccia gnome-software center.
È possibile eseguire le stesse operazioni che abbiamo visto sopra dalla riga di comando usando il comando flatpak. Quando si utilizza il flatpak
utility, è possibile decidere se l'installazione deve essere globale o solo per un utente specifico. In quest'ultimo caso non sono richiesti i privilegi di amministratore e il --user
l'opzione deve essere fornita al comando. Per aggiungere il repository flathub a livello globale eseguiamo semplicemente:
$ sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
Ora possiamo installare il nostro pacchetto. Dobbiamo fornire il percorso completo del pacchetto e anche il nome del repository remoto da cui vogliamo installare. Ad esempio per installare neovim eseguiremmo:
$ sudo flatpak install flathub io.neovim.nvim Required runtime for io.neovim.nvim/x86_64/stable (runtime/org.freedesktop.Sdk/x86_64/18.08) found in remote flathub Do you want to install it? [y/n]:
Se rispondiamo affermativamente il pacchetto e il suo runtime verranno scaricati e installati nel nostro sistema. Se vuoi saperne di più sulla tecnologia flatpak, puoi consultare il nostro articolo più dettagliato sull'argomento
Conclusioni
In questo tutorial abbiamo visto vari modi per installare il software sui sistemi Linux RHEL 8 / CentOS 8. Il software è organizzato in pacchetti, che a basso livello sono gestiti dal gestore di pacchetti rpm che non può risolvere automaticamente le dipendenze. Per fornire questa funzionalità e altro, viene utilizzato il programma dnf, che funziona su rpm. Alla fine abbiamo imparato a installare il software sandbox utilizzando una tecnologia relativamente recente, flatpak.