Repository RPM - YUM

Red Hat Package Manager è sia un package format per installare software che un database di pacchetti installati nel sisitema.
Per installare i pacchetti occorre usare un repository che può essere sia locale che esterno.
Per quello esterno occorre avere una Rhel subscription.
Il repository locale può essere creato dall'ISO di istallazione

1) Creare un immagine ISO che chiamiamo "rhel8.iso" a partitre dall'iso di installazione montata sotto il device /dev/sr0 che punta all'optical disk
# su root
# dd if=/dev/sr0 of=/rhel8.iso bs=1M

dd è un utility che legge da uno standard input e scrive su uno standard output. 

2) Creare una direcorty come mount point:
# mkdir /repo

3) Modificare il file fstab aggiungendo la seguente linea
# vi /etc/fstab
/rhel8.iso    /repo    iso9660    defaults    0    0

3) Ricaricare il deamon 
# systemctl  daemon-reload

3) Montare l'immagie ISO
# mount -a 

5) Verificare nella cartella repo siano presenti il contenuto file ISO:
# cd /repo

# cd /repo/BaseOS
Contine le directory
Packages --> contiene i pacchetti
repodata  --> contiene il repository metadata

6) Creare il file di configurazione per gli appstream
# vi /etc/yum.repos.d/appstream.repo
[appstream]
name=appstream
baseurl=file:///repo/AppStream
gpgcheck=0

7) Creare il file di configurazione per i paccheti base.
vi /etc/yum.repos.d/base.repo
[BaseOS]
name=BaseOS
baseurl=file:///repo/BaseOS
gpgcheck=0

8) Infine lanciare:
# yum repolist

I pacchetti base sono forniti tramite il repository  BaseOS.  
Vediamo i principali comandi 
yum search 
yum install
yum remove
yum update
yum provides  --> effettua una ricerca più approfondita di search cerando anche il nome all'interno dei  pacchetti
yum info
yum list --> yum list all o yum list installed

Application Streams è usato per separare i pacchetti "user space" dalle operazioni core del kernel.
Infatti permette di lavorare con differenti versioni dei pacchetti.
Application Streams sono sviluppati in due formati:
- RPMS tradizionali
- New Modules.
I modules contengono streams che permetto di avere disponibili diverse versioni delle applicazioni.
Abilitando un module stream si ha accesso ai paccheti RPM di quello stream.
I moduli possono avere dei profili cioè lista di pacchetti appartenenti ad uno specifco use-case.
Per gestire i moduli usare yum module.
Vediamo i principali comandi 
yum module list
yum module list php
Php può avere diversi stream, cioè versioni  7.2, 7.3, 7.4 ma anche diversi profili.
yum module info php
yum module info --profile php:7.2
yum module install php:7.2

Ultimi pacchetti sono i gruppi.
yum groups list
yum groups hidden
yum groups info "Virtualization hosts"

-------------------------------------------
yum history 
Per effettuare il rollback di una delle istruzioni estratte dallo storico.
yum history undo <numero specifico preso dal risultato della precedente istruzione>  
yum update
yum update <nome pacchetto>

------------------------------------------
rpm è un comando utile per fare query sui pacchetti ma non usarlo per installarli perchè non considera le dipendenze.
rpm -gf  <nome file>
rpm -ql <nome package>
rpm -qc <nome package>
Per vedere se ci sono script all'interno del package
rpm -qp --scripts <nome package>


Se il repository è su un server esterno (server2) che si collega ad internet usiamo uno script del genere:

[root@server1 yum.repos.d]# cat rh.repo
[rhel-7-server-rpms]
name=rhel-7-server-rpms
baseurl=http://server2/repo/
#baseurl=http://server2/repo/server/7/$releasever/$basearch/os
enabled = 1
gpgcheck = 0

Per creare lo script si può usare anche l'utility dnf (introdotta in Fedora e su cui si basa Rhel 8) 
dnf config-manager --add-repo http://server2/repo/
Il file creato non ha il parametero 
gpgcheck=0



Post popolari in questo blog

ORA-12154: TNS: il listener non è attualmente a conoscenza del servizio richiesto nel descrittore di connessione

Create e Drop Pluggable Database