Dnf è il gestore di pacchetti di alto livello predefinito nella famiglia di distribuzioni Red Hat, che include Fedora, Red Hat Enterprise Linux e tutti i suoi cloni. È il successore di Yum, e in effetti usare il comando yum nelle versioni recenti delle distribuzioni sopra menzionate, è solo un altro modo per chiamare dnf. Dnf ha molte belle funzioni
e plug-in che ci aiutano a installare, aggiornare e rimuovere il software impacchettato nel formato ".rpm". In questo tutorial esploriamo i gruppi di pacchetti dnf e impariamo come gestirli.
In questo tutorial imparerai :
- Cos'è un gruppo di pacchetti
- Come ottenere informazioni su un gruppo di pacchetti
- Come elencare tutti i gruppi di pacchetti disponibili
- Come installare, aggiornare e rimuovere un gruppo di pacchetti
Requisiti software e convenzioni utilizzati
Categoria | Requisiti, convenzioni o versione del software utilizzata |
---|---|
Sistema | Distribuzioni che utilizzano dnf come gestore di pacchetti |
Software | dnf |
Altro | Nessuno |
Convenzioni | # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando sudo command$ – richiede l'esecuzione di determinati comandi linux come un normale utente non privilegiato |
Cos'è un gruppo di pacchetti?
Iniziamo definendo cos'è un gruppo di pacchetti. Un gruppo di pacchetti è fondamentalmente un pacchetto "virtuale". Qui lo chiamiamo "virtuale" perché non fornisce un software specifico di per sé, ma fa riferimento ad altri pacchetti "reali". Possiamo
utilizzare i gruppi di pacchetti per installare un "set" di pacchetti con un singolo comando. Supponiamo ad esempio di dover installare i pacchetti necessari per lavorare con le macchine virtuali kvm su Fedora:invece di installare ogni pacchetto singolarmente, possiamo semplicemente installare il gruppo di pacchetti "virtualizzazione", che farà installare tutto il software necessario sul nostro sistema .
Ottenere informazioni su un gruppo di pacchetti
Prima di installare un gruppo di pacchetti, potremmo voler vedere quali pacchetti verranno inseriti da esso. Per portare a termine questo compito, tutto ciò che dobbiamo fare è utilizzare dnf group info
comando, passando come argomento il nome del gruppo di pacchetti che vogliamo ispezionare. Per vedere cosa è il @virtualization
i gruppi di pacchetti contengono, ad esempio, eseguiremmo:
$ dnf group info virtualization
Ecco l'output del comando sopra su un sistema Fedora 34:
Group: Virtualization Description: These packages provide a graphical virtualization environment. Mandatory Packages: virt-install Default Packages: libvirt-daemon-config-network libvirt-daemon-kvm qemu-kvm virt-manager virt-viewer Optional Packages: libguestfs-tools python3-libguestfs virt-top
Possiamo aumentare la verbosità del comando e ricevere informazioni più dettagliate invocandolo con il -v
(abbreviazione di --verbose
) opzione:
Group: Virtualization Group-Id: virtualization Description: These packages provide a graphical virtualization environment. Mandatory Packages: virt-install-3.2.0-3.fc34.noarch @System Default Packages: libvirt-daemon-config-network-7.0.0-4.fc34.x86_64 @System libvirt-daemon-kvm-7.0.0-4.fc34.x86_64 @System qemu-kvm-2:5.2.0-7.fc34.x86_64 @System virt-manager-3.2.0-3.fc34.noarch @System virt-viewer-9.0-3.fc34.x86_64 @System Optional Packages: libguestfs-tools python3-libguestfs-1:1.45.4-1.fc34.x86_64 updates virt-top-1.0.9-17.fc34.x86_64 fedora
La prima cosa che possiamo notare nell'output è il nome e l'id del gruppo di pacchetti, in questo caso rispettivamente “Virtualizzazione” e “virtualizzazione”. Dopo di loro, possiamo leggere una breve descrizione del gruppo di pacchetti e del suo scopo,
e infine l'elenco effettivo dei pacchetti in esso inclusi. Possiamo vedere che i pacchetti sono divisi in tre sezioni principali:
- Obbligatorio
- Predefinito
- Facoltativo
I pacchetti contrassegnati come "Obbligatorio" e "Predefinito" saranno sempre essere installati, mentre quelli contrassegnati come “Opzionali” verranno installati solo se specificati. Per completezza ricordiamo che esiste un'altra sezione, che in questo caso non viene utilizzata:Condizionale . I pacchetti che fanno parte della sezione “Condizionale” vengono installati solo se i pacchetti che richiedono sono già installati.
In alcuni casi alcuni pacchetti che fanno parte di un gruppo di pacchetti possono essere già presenti nel sistema. Quando eseguiamo le group info
comando con il -v
opzione, come abbiamo fatto sopra, i pacchetti che fanno parte del gruppo e non sono già installati saranno facilmente distinguibili, poiché verranno evidenziati nell'elenco. Ecco l'output della dnf -v group info virtualization
comando dopo il virt-viewer
pacchetto è stato installato singolarmente:
dnf -v group info virtualization
uscita del comando Elenca tutti i gruppi di pacchetti disponibili
Per elencare tutti i gruppi di pacchetti disponibili nei repository della nostra distribuzione tutto ciò che dobbiamo fare è eseguire il seguente comando:
$ dnf group list
Il comando sopra restituisce l'elenco di tutti i gruppi conosciuti. Possiamo però aggiungere una serie di opzioni per modificarne il comportamento. Per impostazione predefinita, i cosiddetti gruppi nascosti non sono inclusi nell'elenco. Per farli apparire, tutto ciò che
dobbiamo fare è aggiungere il --hidden
opzione:
$ dnf group list --hidden
Se vogliamo solo ottenere l'elenco di tutti gli installati gruppi di pacchetti, invece, possiamo usare il --installed
opzione:
$ dnf group list --installed
Installazione, aggiornamento e rimozione di un gruppo di pacchetti
Quindi, come possiamo installare un gruppo di pacchetti? Ci sono due modi principali:possiamo specificare il nome del pacchetto preceduto da @
simbolo, oppure usa il dnf group install
comando, come abbiamo già visto. I comandi seguenti sono equivalenti:
$ sudo dnf install @virtualization
$ sudo dnf group install virtualization
Come abbiamo già detto, per impostazione predefinita vengono installati solo i pacchetti "Obbligatorio" e "Predefinito". Questo comportamento predefinito, tuttavia, può essere modificato utilizzando i group_package_types
dnf, dalla riga di comando o nel file di configurazione dnf
. Facciamo un esempio. Supponiamo di voler installare solo i pacchetti che fanno parte della sezione "Obbligatoria" di un gruppo di pacchetti, potremmo eseguire il seguente comando:
$ sudo dnf --setopt=group_package_types="mandatory" group install Virtualization
Se non vogliamo specificare l'opzione ogni volta che eseguiamo un comando, possiamo impostarla in modo permanente nel file di configurazione dnf, /etc/dnf/dnf.conf
:
[main] # Install only Mandatory packages from package groups group_package_types=mandatory
Se vogliamo solo includere i pacchetti inclusi nella sezione "Facoltativo" di un gruppo di pacchetti, potremmo anche aggiungere semplicemente il --with-optional
flag della riga di comando durante l'installazione di un gruppo di pacchetti:
$ sudo dnf group install --with-optional virtualization
Possiamo anche avere la possibilità di aggiornare un gruppo di pacchetti. Quando lo facciamo, tutti i pacchetti che fanno parte del gruppo verranno aggiornati insieme al gruppo di pacchetti stesso:ciò potrebbe potenzialmente causare l'installazione di nuovi pacchetti
se sono stati aggiunti al gruppo, o rimossi se non lo sono fanno più parte di un gruppo e non sono stati installati esplicitamente dall'utente. Per aggiornare un gruppo di pacchetti utilizziamo group upgrade
comando, quindi, ad esempio,
per aggiornare il pacchetto "Virtualizzazione" eseguiremo:
$ sudo dnf group upgrade virtualization
Dnf fornisce anche un comando per rimuovere un gruppo di pacchetti installato:group remove
. Il comando rimuoverà tutto pacchetti che fanno parte di un gruppo dal sistema operativo, ad eccezione di quelli che fanno parte di un altro gruppo di pacchetti, o quelli installati esplicitamente dall'utente. Per rimuovere il gruppo di pacchetti "Virtualizzazione", eseguiremo:
$ sudo dnf group remove virtualization
Conclusioni
In questo tutorial abbiamo imparato a conoscere i gruppi di pacchetti. Abbiamo visto come ottenere informazioni su un gruppo di pacchetti specifico nelle distribuzioni che usano dnf come gestore di pacchetti, come Fedora e Rhel, come i pacchetti che sono membri di un gruppo di pacchetti sono divisi in sezioni, quali di essi sono installati per impostazione predefinita e come possiamo modificare questo
comportamento. Infine, abbiamo imparato come installare, aggiornare e rimuovere un gruppo di pacchetti.