Nota
- Questa esercitazione è disponibile in un ambiente di esercitazione pratica gratuito fornito da Oracle.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Quando completi il tuo laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
Usa DNF su Oracle Linux
Introduzione
Oracle Linux fornisce la utility dnf, basata su Dandified Yum (DNF), come software client per l'installazione e la gestione dei pacchetti di sistema. Questi pacchetti possono provenire da Unbreakable Linux Network (ULN) o da un server yum Oracle Linux. I pacchetti software vengono installati su un sistema utilizzando comandi dnf standard e dipendono dal sistema che ha abilitato le sottoscrizioni dei canali ULN o i repository yum appropriati. Durante l'installazione o l'aggiornamento dei pacchetti, dnf gestisce automaticamente le dipendenze e i requisiti dei pacchetti.
DNF migliora significativamente funzionalità e prestazioni e offre molte nuove funzionalità, tra cui contenuti modulari e un'API più stabile e documentata, rispetto al comando tradizionale di yum.
Obiettivi
In questo tutorial, imparerai come:
- Utilizzo dei repository DNF
- Gestione di pacchetti e moduli
- Installa gli aggiornamenti della sicurezza
- Utilizzo di gruppi di pacchetti
- Utilizzare la funzione Cronologia DNF
- Automatizza gli aggiornamenti delle patch
Prerequisiti
-
Minimo di un singolo sistema Oracle Linux
-
Ogni sistema deve avere Oracle Linux installato e configurato con:
- Account utente non root con accesso sudo
- Accesso a Internet
Implementa Oracle Linux
Nota: se è in esecuzione nella propria tenancy, leggere il progetto linux-virt-labs GitHub README.md e completare i prerequisiti prima di distribuire l'ambiente di laboratorio.
-
Aprire un terminale sul Luna Desktop.
-
Duplicare il progetto
linux-virt-labsGitHub.git clone https://github.com/oracle-devrel/linux-virt-labs.git -
Passare alla directory di lavoro.
cd linux-virt-labs/ol -
Installare le raccolte richieste.
ansible-galaxy collection install -r requirements.yml -
Implementare l'ambiente di laboratorio.
ansible-playbook create_instance.yml -e localhost_python_interpreter="/usr/bin/python3.6"L'ambiente di esercitazione pratica gratuito richiede l'aggiunta della variabile
local_python_interpreter, che impostaansible_python_interpreterper le riproduzioni eseguite su localhost. Questa variabile è necessaria perché l'ambiente installa il pacchetto RPM per l'SDK Oracle Cloud Infrastructure per Python, situato sotto i moduli python3.6.La forma di distribuzione predefinita utilizza la CPU AMD e Oracle Linux 8. Per utilizzare una CPU Intel o Oracle Linux 9 o 10, aggiungere
-e instance_shape="VM.Standard3.Flex"o impostare-e os_version="10",-e os_version="9"o-e os_version="8"nel comando di distribuzione.Importante: attendere che il playbook venga eseguito correttamente e raggiungere il task di sospensione. In questa fase del playbook, l'installazione di Oracle Linux è completa e le istanze sono pronte. Prendi nota del gioco precedente, che stampa gli indirizzi IP pubblici e privati dei nodi che distribuisce e qualsiasi altra informazione di distribuzione necessaria durante l'esecuzione del laboratorio.
Utilizzo dei repository DNF
-
Aprire un terminale e connettersi tramite SSH all'istanza ol-node-01.
ssh oracle@<ip_address_of_instance> -
Recupera una lista di repository abilitati.
dnf repolistDNF cerca nella directory
/etc/yum.repos.di file che terminano in.repo. È possibile passare l'opzioneallper visualizzare un elenco dei repository abilitati e disabilitati. Un file di repository può definire uno o più repository e considerare il repository abilitato quandoenabled=1e disabilitato quandoenabled=0. -
Abilitare un repository.
Oracle Linux 10:
sudo dnf config-manager --enable ol10_codeready_builderOracle Linux 9:
sudo dnf config-manager --enable ol9_codeready_builderOracle Linux 8:
sudo dnf config-manager --enable ol8_codeready_builder -
Disabilitare un repository.
Oracle Linux 10:
sudo dnf config-manager --disable ol10_codeready_builderOracle Linux 9:
sudo dnf config-manager --disable ol9_codeready_builderOracle Linux 8:
sudo dnf config-manager --disable ol8_codeready_builder -
Installare un repository.
Oracle Linux fornisce repository predefiniti per vari prodotti in formato package. È possibile cercare questi e quindi installarli e abilitarli.
dnf search oracle*release*Oracle Linux 10:
sudo dnf install -y oracle-instantclient-release-el10Oracle Linux 9:
sudo dnf install -y oracle-instantclient-release-el9Oracle Linux 8:
sudo dnf install -y oracle-instantclient-release-el8Anche se non preferito, è anche possibile installare i repository da:
- Creazione diretta di un nuovo file
.repoin/etc/yum.repos.d - Utilizzo di
dnf config-manager --add-repo <repo_file>, che consente l'installazione di un file di repository memorizzato localmente o da un URL
- Creazione diretta di un nuovo file
-
Rimuovere la cache DNF.
Per facilitare le prestazioni, DNF inserisce i dati nella cache in
/var/cache/dnf. A volte i dati inseriti nella cache potrebbero diventare obsoleti e causare l'errore dei comandidnf. Per risolvere il problema, è possibile rimuovere tutti gli elementi inseriti nella cache.dnf clean allDNF ricrea automaticamente questa cache nel tempo durante l'esecuzione di vari comandi. Per risolvere un errore del comando, è possibile cancellare la cache e riprovare a eseguire il comando non riuscito.
Gestisci pacchetti e moduli
Nota per Oracle Linux 10: la modularità DNF (moduli e flussi) non è disponibile su Oracle Linux 10. È possibile installare pacchetti standard dal repository AppStream, ma non è possibile abilitare o installare moduli o flussi come nelle release precedenti.
Nei passaggi forniti, in cui viene utilizzata la modularità DNF, le istruzioni si applicano solo a Oracle Linux 8 e Oracle Linux 9.
-
Recupera un elenco di pacchetti disponibili dai repository abilitati.
dnf listÈ possibile limitare l'output restituito utilizzando le opzioni
installedoavailablee persino richiedendo un nome di pacchetto specifico comednf list available git. -
Elencare i moduli disponibili.
dnf module listL'output mostra i moduli disponibili per il sistema, i flussi associati e i profili in cui:
Name: nome moduloStream: versione StreamProfiles: profili disponibili e relativo statocommon: distribuzione avanzata pronta per la produzione ed è il profilo predefinitodevelopment: installa i pacchetti necessari per apportare modifiche al modulo.minimal: installa il set più piccolo di pacchetti che forniscono un'applicazione funzionante
Utilizzare il suggerimento alla fine dell'output per determinare i flussi e i profili abilitati, disabilitati, installati o predefiniti.
Analogamente ai pacchetti, è possibile passare un nome di modulo all'opzione
listper visualizzare lo stato solo del modulo. -
Ottenere informazioni su un pacchetto o modulo.
dnf info zshIn questo caso,
zshè il nome del pacchetto. Lo stesso vale per i moduli, ma si aggiunge il comandomodulee si aggiunge il modulo specifico, ad esempiodnf module info php. Se sono necessarie informazioni su un determinato flusso di moduli, passare--profileinsieme a module:stream anziché al nome del modulo.dnf module info --profile php:8.2 -
Cercare un pacchetto disponibile o installato.
dnf search php -
Cercare il pacchetto che fornisce un nome di file o un comando specifico.
Il comando
provides, con aliaswhatprovides, trova il pacchetto corrispondente al nome del file. Se non si fornisce un percorso completo, DNF aggiunge al nome del file/usr/sbine/usr/bin. Per scopi precedenti, aggiunge anche/sbine/bin.dnf provides sudo -
Installare un pacchetto.
sudo dnf install tmuxRispondere a
yper confermare l'installazione del pacchetto. Evitare questo passaggio aggiuntivo in futuro passando l'opzione-y. DNF, per impostazione predefinita, installa solo i pacchetti dai repository abilitati. Tuttavia, è possibile ignorare questo comportamento predefinito passando l'opzione--enablerepo=<repo name>. -
Reinstallare un pacchetto.
sudo dnf reinstall -y tmuxQuesto comando esegue essenzialmente un
dnf remove, quindi undnf install. La differenza fondamentale è che l'utilizzo della reinstallazione mantiene qualsiasi configurazione personalizzata dei file associati al pacchetto. -
Abilitare un modulo.
Prima di installare i pacchetti da un modulo, è necessario abilitarli.
Oracle Linux 9:
sudo dnf module -y enable nginx:1.22Oracle Linux 8:
sudo dnf module -y enable nginx -
Installare un modulo.
Oracle Linux 9:
sudo dnf module install -y nginx:1.22Oracle Linux 8:
sudo dnf module install -y nginx:1.14Dopo aver installato i pacchetti, l'esecuzione di
sudo dnf module list nginxmostra un file[i]accanto al profilo 1.22 del flusso common [d]. -
Rimuovere un pacchetto o un modulo.
sudo dnf remove -y tmuxAnalogamente, è possibile rimuovere un modulo utilizzando la stessa sintassi sostituendo il nome del pacchetto con module:stream/profile.
-
Passare a un modulo.
Il passaggio a flussi di moduli comporta l'aggiornamento o il downgrade del contenuto a una versione diversa dalla versione corrente del sistema. Gestisce anche l'installazione di dipendenze aggiuntive o la rimozione di pacchetti che non sono più necessari.
sudo dnf module -y switch-to nginx:1.24/common -
Disabilitare un modulo.
sudo dnf module -y disable nginxDisabilitando un modulo, si garantisce che la rimozione dei profili installati, tutti i flussi di moduli correlati non siano più disponibili e il servizio RPMS modulare non faccia parte del set di pacchetti. Se DNF rileva eventuali conflitti, l'operazione viene rifiutata. Un motivo per disabilitare un modulo è che nel repository e nell'appstream predefiniti esistono pacchetti più recenti.
-
Reimpostare un modulo.
Questa operazione imposta lo stato del modulo in modo che non sia più abilitato o disabilitato. DNF rimuove tutti i profili e sono disponibili solo i package del profilo predefinito.
sudo dnf module -y reset nginx
Installa gli aggiornamenti della sicurezza
-
Elenca tutti gli errori disponibili.
dnf updateinfo listL'output mostra i repository abilitati seguiti da ogni aggiornamento. DNF ordina gli errori disponibili in ordine dei loro ID e li identifica ulteriormente in base al loro tipo.
Severity/Sec: patch priorità/sicurezzabugfix: correzione bugenhancement: miglioramento delle funzioni
È possibile aggiungere al comando cves, bugfix o security per limitare l'output solo al tipo di errori specifico specificato. È anche possibile passare
--installedper ottenere un elenco di tali correzioni di sicurezza installate sull'host. -
Mostra un riepilogo degli errori disponibili.
dnf updateinfo summary -
Ottenere una lista di upgrade della sicurezza in base alla severità.
È possibile passare l'opzione
--sec-severityCritico, Importante, Moderato o Basso.dnf updateinfo list --sec-severity=ImportantDNF consente di passare altre opzioni al comando
list. È possibile utilizzare--advisory <Advisory ID>per ottenere un avviso specifico o--cve <CVD IDper ottenere un CVE particolare. Utilizzando il comandoinfoanzichéliste le opzioni esatte, vengono fornite informazioni dettagliate sull'advisory o sull'ambiente CVE specifico. -
Aggiornare ogni pacchetto alla versione più recente.
sudo dnf upgrade -yFacoltativamente, è possibile escludere un pacchetto specifico dall'aggiornamento con l'opzione
-xseguita dal nome del pacchetto. Mentre Oracle Linux consiglia di applicare tutti gli errori, il comandoupgradeaccetta le seguenti opzioni:--cve: aggiorna un singolo ID CVE--advisory: aggiornamento di un singolo ID consultivo--security: aggiorna tutti gli errori relativi alla sicurezza
In alternativa, un utente può eseguire
sudo dnf upgrade-minimalper applicare solo gli aggiornamenti ai pacchetti che forniscono una correzione di bug, un miglioramento o una correzione per un problema di sicurezza.Importante: dopo aver eseguito eventuali aggiornamenti del kernel, assicurarsi di effettuare il reboot del sistema. Se non è possibile eseguire il reboot di un sistema, si consiglia di utilizzare Oracle Ksplice per applicare le patch del kernel.
Gestisci gruppi di pacchetti
DNF consente l'installazione, l'aggiornamento o la rimozione dei gruppi di pacchetti. Questi gruppi sono una raccolta di pacchetti dipendenti che hanno uno scopo comune.
-
Elenca i gruppi disponibili.
dnf group list -
Ottenere un elenco di gruppi che un gruppo contiene.
dnf group info "Server with GUI"Il server con interfaccia utente grafica installa il desktop grafico GNOME.
-
Mostrare i singoli pacchetti contenuti da un gruppo.
dnf group info Core -
Installare il gruppo.
sudo dnf group install "Server with GUI" --assumenoL'opzione
--assumenorisponderà automaticamente a no e salterà l'installazione per risparmiare tempo in questa esercitazione. Lasciare questa opzione fuori dal comando e sostituirla con l'opzione-yper installarla automaticamente. DNF fornisce i comandidnf group updateednf group removeper aggiornare e rimuovere i gruppi.
Utilizzare la funzione Cronologia DNF
La funzione Cronologia DNF mostra tutte le azioni eseguite dal comando dnf. La funzione Cronologia consente l'annullamento, il ripristino e il rollback di una transazione DNF specifica. Oltre alla cronologia DNF, le installazioni dei pacchetti, gli aggiornamenti e le rimozioni vengono registrati nel file /var/log/dnf.log.
-
Elenca tutte le transazioni DNF.
dnf historyÈ possibile ottenere informazioni relative a una delle transazioni eseguendo
dnf history info <transaction ID>. -
Eseguire il rollback di una transazione specifica.
L'opzione
rollbackannullerà tutte le transazioni dopo il valore<transaction ID>specificato. Se si desidera stornare una sola transazione, utilizzare inveceundo.sudo dnf history rollback <transaction ID>Il comando DNF
history rollbackincrementa l'ID transazione e registra il rollback come transazione univoca. -
Ripetere una transazione specifica.
È possibile
redola transazione specifica e ripetere ciascuna delle relative fasi.sudo dnf history redo <transaction ID>
Automatizza applicazione patch
Un'alternativa all'esecuzione manuale di dnf upgrade consiste nell'utilizzare lo strumento automatico DNF. Questo strumento fornisce notifiche automatiche degli aggiornamenti, li scarica e installa automaticamente i pacchetti utilizzando i timer systemd.
-
Installare il pacchetto richiesto e attivare il timer.
sudo dnf install dnf-automatic -ysudo systemctl enable --now dnf-automatic.timer -
Visualizzare la configurazione predefinita upgrade_type.
Il file di configurazione per DNF Automatic Tool è
/etc/dnf/automatic.conf. Per impostazione predefinita, l'aggiornamento automatico si applica a tutti gli aggiornamenti disponibili. È possibile modificare il parametroupgrade_typeinsecurityper utilizzare solo gli aggiornamenti di sicurezza.grep upgrade_type /etc/dnf/automatic.conf
Passi successivi
In questa esercitazione viene descritto come gestire i pacchetti software nel sistema Oracle Linux e assicurarsi di mantenerli aggiornati con le correzioni di sicurezza più recenti. Quindi aggiorna i tuoi sistemi e consulta la sezione Collegamenti correlati per ulteriori dettagli e corsi di formazione su Oracle Linux.
Collegamenti correlati
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti di formazione gratuiti sul canale YouTube di Oracle Learning. Inoltre, visitare education.oracle.com/learning-explorer per diventare Oracle Learning Explorer.
Per la documentazione del prodotto, visitare Oracle Help Center.