Introduzione ai flussi di applicazioni
CentOS/RHEL 8.0 introduce il concetto di flussi di applicazioni. Più versioni dei componenti dello spazio utente forniti con la distribuzione vengono ora fornite contemporaneamente. Possono essere aggiornati più frequentemente rispetto ai pacchetti del sistema operativo principale. Ciò ti offre una maggiore flessibilità per personalizzare Red Hat Enterprise Linux senza influire sulla stabilità sottostante della piattaforma o implementazioni specifiche.
Tradizionalmente, la gestione di versioni alternative del pacchetto software di un'applicazione e dei relativi pacchetti significava mantenere repository diversi per ogni versione diversa. Per gli sviluppatori che desideravano l'ultima versione di un'applicazione e gli amministratori che desideravano la versione più stabile dell'applicazione, ciò creava una situazione noiosa da gestire. Questo processo è semplificato in Red Hat Enterprise Linux 8 utilizzando una nuova tecnologia chiamata Modularità. La modularità consente a un singolo repository di ospitare più versioni del pacchetto di un'applicazione e delle sue dipendenze.
Il contenuto di CentOS/RHEL 8 è distribuito tramite due repository software principali:BaseOS e Application Stream (AppStream).
BaseOS
Il repository BaseOS fornisce il contenuto del sistema operativo principale per Red Hat Enterprise Linux come pacchetti RPM. I componenti BaseOS hanno un ciclo di vita identico a quello del contenuto nelle versioni precedenti di CentOS/RHEL.
Stream di applicazioni
Il repository Application Stream fornisce contenuto con cicli di vita variabili sia come moduli che come pacchetti tradizionali. Application Stream contiene le parti necessarie del sistema, nonché un'ampia gamma di applicazioni precedentemente disponibili come parte di Red Hat Software Collections e altri prodotti e programmi.
Nota :Sia BaseOS che AppStream sono una parte necessaria di un sistema CentOS/RHEL 8.Il repository di Application Stream contiene due tipi di contenuto:moduli e pacchetti RPM tradizionali. Un modulo descrive un insieme di pacchetti RPM che appartengono insieme. I moduli possono contenere diversi flussi per rendere disponibili per l'installazione più versioni delle applicazioni. L'abilitazione di un flusso di moduli fornisce al sistema l'accesso ai pacchetti RPM all'interno di quel flusso di moduli.
Moduli
Un modulo è un insieme di pacchetti RPM che sono un insieme coerente che appartiene insieme. Tipicamente, questo è organizzato attorno a una versione specifica di un'applicazione software o di un linguaggio di programmazione. Un modulo tipico può contenere pacchetti con un'applicazione, pacchetti con le librerie di dipendenze specifiche dell'applicazione, pacchetti con la documentazione per l'applicazione e pacchetti con utilità di supporto.
Stream di moduli
Ogni modulo può avere uno o più flussi di moduli, che contengono versioni diverse del contenuto. Ciascuno dei flussi riceve gli aggiornamenti in modo indipendente. Pensa al flusso del modulo come a un repository virtuale nel repository fisico di Application Stream. Per ogni modulo, è possibile abilitare solo uno dei suoi flussi e fornire i suoi pacchetti.
Profili modulo
Ogni modulo può avere uno o più profili. Un profilo è un elenco di determinati pacchetti da installare insieme per un particolare caso d'uso come per un server, client, sviluppo, installazione minima o altro. L'installazione di un particolare profilo di modulo installa semplicemente un particolare insieme di pacchetti dal flusso di moduli. Successivamente è possibile installare o disinstallare normalmente i pacchetti. Se non specifichi un profilo, il modulo installerà il suo profilo predefinito.
Gestione dei moduli utilizzando YUM
Yum versione 4, nuova in CentOS/RHEL 8, aggiunge il supporto per le nuove funzionalità modulari di Application Stream. Per la gestione del contenuto modulare, è stato aggiunto il comando yum module. Altrimenti, yum funziona con i moduli proprio come fa con i normali pacchetti.
Moduli di elenco
Per visualizzare un elenco di moduli disponibili, utilizza yum module list:
[user@host ~]$ yum module list Red Hat Enterprise Linux 8.0 AppStream - AppStream HTB (RPMs) Name Stream Profiles Summary 389-ds 1.4 default 389 Directory Server (base) ant 1.10 [d] common [d] Java build tool container-tools 1.0 [d] common [d] Common tools and dependencies for container runtimes ...output omitted... Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalledNota :Usa il suggerimento alla fine dell'output per determinare quali stream e profili sono abilitati, disabilitati, installati e quali sono quelli predefiniti.
Per elencare i flussi di moduli per un modulo specifico e recuperarne lo stato:
[user@host ~]$ yum module list perl Red Hat Enterprise Linux 8 for x86_64 - AppStream HTB (RPMs) Name Stream Profiles Summary perl 5.24 common [d], minimal Practical Extraction and Report Language perl 5.26 [d] common [d], minimal Practical Extraction and Report Language
Per elencare i pacchetti installati dal flusso di moduli predefinito:
[user@host ~]$ yum module info perl Name : perl Stream : 5.26 [d][a] Version : 820181219174508 Context : 9edba152 Profiles : common, minimal Default profiles : default Repo : rhel-8-fo r-x86_64-appstream-htb-rpms Summary : Practical Extraction and Report Language ...output omitted... Artifacts : perl-4:5.24.4-401.module+el8+2464+d274aed1.x86_64 : perl-Algorithm-Diff-0:1.1903-9.module+el8+2464+d274aed1.noarch : perl-Archive-Tar-0:2.30-1.module+el8+2464+d274aed1.noarch ...output omitted...
Nota :Senza specificare un flusso di moduli, yum module info mostra i dettagli del flusso di moduli predefinito. Usa il formato module-name:stream per visualizzare uno specifico flusso di moduli. Aggiungi l'opzione –profile per visualizzare le informazioni sui pacchetti installati da ciascuno dei profili del modulo. Ad esempio:
[user@host ~]$ yum module info --profile perl:5.24
Abilitazione dei flussi di moduli e installazione dei moduli
I flussi di moduli devono essere abilitati per poter installare il loro modulo. Per semplificare questo processo, quando un modulo è installato abilita il suo flusso di moduli, se necessario. I flussi di moduli possono essere abilitati manualmente utilizzando yum module enable e fornendo il nome del flusso del modulo.
Nota :È possibile abilitare un solo flusso di moduli per un determinato modulo. L'abilitazione di un flusso di moduli aggiuntivo disabiliterà il flusso di moduli originale.Installa un modulo utilizzando lo stream e i profili predefiniti:
[user@host ~]$ sudo yum module install -y perl Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Installing group/module packages: perl x86_64 4:5.26.3-416.el8 rhel-8-for-x86_64-appstream-htb-rpms 72 k Installing dependencies: ...output omitted... Running transaction Preparing : 1/1 Installing : perl-Exporter-5.72-396.el8.noarch 1/155 Installing : perl-Carp-1.42-396.el8.noarch 2/155 ...output omitted... Installed: perl-4:5.26.3-416.el8.x86_64 perl-Encode-Locale-1.05-9.el8.noarch ...output omitted... Complete!Nota :Gli stessi risultati si sarebbero potuti ottenere eseguendo yum install @perl. La notazione @ informa yum che l'argomento è un nome di modulo anziché un nome di pacchetto.
Per verificare lo stato del flusso del modulo e del profilo installato:
[user@host ~]$ yum module list perl Red Hat Enterprise Linux 8.0 AppStream - AppStream HTB (RPMs) Name Stream Profiles Summary perl 5.24 common, minimal Practical Extraction and Report Language perl 5.26 [d][e] common [i], minimal Practical Extraction and Report Language Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Rimozione dei moduli e disabilitazione dei flussi di moduli
La rimozione di un modulo rimuove tutti i pacchetti installati dai profili del flusso di moduli attualmente abilitato e tutti gli altri pacchetti e moduli che dipendono da questi. I pacchetti installati da questo flusso di moduli non elencati in nessuno dei suoi profili rimangono installati sul sistema e possono essere rimossi manualmente.
Nota :Rimuovere i moduli e cambiare i flussi di moduli può essere un po' complicato. Cambiare lo stream abilitato per un modulo equivale a reimpostare lo stream corrente e abilitare il nuovo stream. Non cambia automaticamente alcun pacchetto installato. Devi farlo manualmente. Non è consigliabile installare direttamente un flusso di moduli diverso da quello attualmente installato, poiché durante l'installazione potrebbero essere eseguiti script di aggiornamento che interrompono il flusso di moduli originale. Ciò potrebbe causare la perdita di dati o altri problemi di configurazione. Procedi con cautelaPer rimuovere un modulo installato:
[user@host ~]$ sudo yum module remove -y perl Dependencies resolved. ===================================================================================================== Package ArchVersion Repository Size ===================================================================================================== Removing: perl x86_644:5.26.3-416.el8 @rhel-8-for-x86_64-appstream-htb-rpms 0 Removing unused dependencies: ...output omitted... Running transaction Preparing : 1/1 Erasing : perl-4:5.26.3-416.el8.x86_64 1/155 Erasing : perl-CPAN-2.18-397.el8.noarch 2/155 ...output omitted... Removed: perl-4:5.26.3-416.el8.x86_64 dwz-0.12-9.el8.x86_64 ...output omitted... Complete!
Dopo la rimozione del modulo, il flusso del modulo è ancora abilitato. Per verificare che il flusso del modulo sia ancora abilitato:
[user@host ~]$ yum module list perl Red Hat Enterprise Linux 8.0 AppStream - AppStream HTB (RPMs) Name Stream Profiles Summary perl 5.24 common [d], minimal Practical Extraction and Report Language perl 5.26 [d][e] common [d], minimal Practical Extraction and Report Language Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
[user@host ~]$ sudo yum module disable perl ...output omitted... Dependencies resolved. ================================================================================= Package Arch Version Repository Size ================================================================================= Disabling module streams: perl 5.26 Is this ok [y/N]: y Complete!
Commutazione dei flussi del modulo
La commutazione dei flussi di moduli richiede generalmente l'aggiornamento o il downgrade del contenuto a una versione diversa. Per garantire uno switch pulito, è necessario rimuovere prima i moduli forniti dal flusso di moduli. Ciò rimuoverà tutti i pacchetti installati dai profili del modulo e tutti i moduli ei pacchetti da cui quei pacchetti hanno dipendenze.
Per abilitare un flusso di moduli diverso e installare il modulo:
[user@host ~]$ sudo yum module install perl:5.24
Il nuovo flusso del modulo verrà abilitato e il flusso corrente disabilitato. Potrebbe essere necessario aggiornare o effettuare il downgrade dei pacchetti dal flusso di moduli precedente che non sono elencati nel nuovo profilo. Usa la yum distro-sync per eseguire questa attività, se necessario. Potrebbero esserci anche pacchetti che rimangono installati dal flusso di moduli precedente. Rimuovi quelli che usano yum remove.