Ricerca nel sito web

Come creare un repository HTTP Yum/DNF locale su RHEL 8


Un repository software o "repo" è una posizione centrale per conservare e mantenere i pacchetti software RPM per la distribuzione Redhat Linux, da cui gli utenti possono scaricare e installare i pacchetti sui propri server Linux.

Gli repository sono generalmente archiviati su una rete pubblica, a cui possono accedere più utenti su Internet. Tuttavia, puoi creare il tuo repository locale sul tuo server e accedervi come utente singolo o consentire l'accesso ad altre macchine sulla tua LAN locale (Local Area Network) utilizzando il server web HTTP.

Il vantaggio di creare un repository locale è che non è necessaria una connessione Internet per installare pacchetti software o aggiornamenti.

YUM (Yellowdog Updater Modified) o DNF (Dandified YUM) è un'utilità di gestione dei pacchetti software ampiamente utilizzata per i sistemi Linux basati su RPM (RedHat Package Manager), che semplifica l'installazione del software su Red Hat/CentOS Linux.

In questo articolo spiegheremo come configurare un repository YUM/DNF locale su RHEL 8 utilizzando il DVD di installazione o il file ISO. Ti mostreremo anche come trovare e installare pacchetti software su macchine client RHEL 8 utilizzando il server Nginx HTTP.

Il nostro ambiente di test

Local Repository Server: RHEL 8 [192.168.0.106]
Local Client Machine: RHEL 8 [192.168.0.200]

Passaggio 1: installare il server Web Nginx

1. Innanzitutto, installa il server Nginx HTTP utilizzando il gestore pacchetti DNF come segue.

dnf install nginx

2. Una volta installato Nginx, puoi avviare, abilitare l'avvio automatico del servizio all'avvio e verificare lo stato utilizzando i seguenti comandi.

systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Successivamente, devi aprire le porte Nginx 80 e 443 sul tuo firewall.

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --reload

4. Ora puoi verificare che il tuo server Nginx sia attivo e funzionante accedendo al seguente URL sul tuo browser web, verrà visualizzata una pagina web Nginx predefinita.

http://SERVER_DOMAIN_NAME_OR_IP

Passaggio 2: montaggio del DVD/file ISO di installazione di RHEL 8

5. Crea un punto di montaggio del repository locale nella directory root del documento Nginx /var/www/html/ e monta il RHEL 8 scaricato Immagine ISO del DVD nella directory /mnt.

mkdir /var/www/html/local_repo
mount -o loop rhel-8.0-x86_64-dvd.iso /mnt  [Mount Download ISO File]
mount /dev/cdrom /mnt                       [Mount DVD ISO File from DVD ROM]

6. Successivamente, copia i file ISO localmente nella directory /var/www/html/local_repo e verifica i contenuti utilizzando il comando ls.

cd /mnt
tar cvf - . | (cd /var/www/html/local_repo/; tar xvf -)
ls -l /var/www/html/local_repo/

Passaggio 3: configurazione del repository locale

7. Ora è il momento di configurare il repository locale. È necessario creare il file di configurazione del repository locale nella directory /etc/yum.repos.d/ e impostare le autorizzazioni appropriate sul file come mostrato.

touch /etc/yum.repos.d/local-rhel8.repo
chmod  u+rw,g+r,o+r  /etc/yum.repos.d/local-rhel8.

8. Quindi apri il file per la modifica utilizzando il tuo editor di testo preferito dalla riga di comando.

vim /etc/yum.repos.d/local.repo

9. Copia e incolla il seguente contenuto nel file.

[LocalRepo_BaseOS]
name=LocalRepo_BaseOS
metadata_expire=-1
enabled=1
gpgcheck=1
baseurl=file:///var/www/html/local_repo/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[LocalRepo_AppStream]
name=LocalRepo_AppStream
metadata_expire=-1
enabled=1
gpgcheck=1
baseurl=file:///var/www/html/local_repo/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

Salvare le modifiche ed uscire dal file.

10. Ora devi installare i pacchetti richiesti per creare, configurare e gestire il tuo repository locale eseguendo il comando seguente.

yum install createrepo  yum-utils
createrepo /var/www/html/local_repo/

Passaggio 4: test del repository locale

11. In questo passaggio, dovresti eseguire una pulizia dei file temporanei conservati per i repository utilizzando il seguente comando.

yum clean all
OR
dnf clean all

12. Quindi verifica che i repository creati compaiano nell'elenco dei repository abilitati.

dnf repolist
OR
dnf repolist  -v  #shows more detailed information 

13. Ora prova a installare un pacchetto dai repository locali, ad esempio installa lo strumento da riga di comando Git come segue:

dnf install git

Osservando l'output del comando precedente, il pacchetto git viene installato dal repository LocalRepo_AppStream come mostrato nello screenshot. Ciò dimostra che i repository locali sono abilitati e funzionano correttamente.

Passaggio 5: impostare il repository Yum locale sui computer client

14. Ora sui tuoi computer client RHEL 8, aggiungi i tuoi repository locali alla configurazione YUM.

vi /etc/yum.repos.d/local-rhel8.repo 

Copia e incolla la configurazione seguente nel file. Assicurati di sostituire baseurl con l'indirizzo IP o il dominio del tuo server.

[LocalRepo_BaseOS]
name=LocalRepo_BaseOS
enabled=1
gpgcheck=0
baseurl=http://192.168.0.106

[LocalRepo_AppStream]
name=LocalRepo_AppStream
enabled=1
gpgcheck=0
baseurl=http://192.168.0.106

Salva il file e inizia a utilizzare i tuoi mirror YUM locali.

15. Successivamente, esegui il comando seguente per visualizzare i tuoi repository locali nell'elenco dei repository YUM disponibili sui computer client.

dnf repolist

È tutto! In questo articolo, abbiamo mostrato come creare un repository YUM/DNF locale in RHEL 8, utilizzando il DVD di installazione o il file ISO. Non dimenticare di contattarci tramite il modulo di feedback sottostante per qualsiasi domanda o commento.