Un archivio di software ("repo"in breve) è una posizione centrale di archiviazione dei file per conservare e mantenere i pacchetti software, da cui gli utenti possono recuperare i pacchetti e installarli sui propri computer.
I repository sono spesso archiviati su server su una rete, ad esempio Internet, a cui possono accedere più utenti. Tuttavia, puoi creare e configurare un repository locale sul tuo computer e accedervi come singolo utente o consentire l'accesso ad altre macchine sul tuo LAN (Rete locale).
Un vantaggio della configurazione di un repository locale è che non è necessaria una connessione Internet per installare i pacchetti software.
YUM (Yellowdog Updater modificato) è uno strumento di gestione dei pacchetti ampiamente utilizzato per RPM (RedHat Package Manager) basato su sistemi Linux, che semplifica l'installazione del software Red Hat/CentOS Linux.
In questo articolo spiegheremo come creare un locale YUM deposito finito HTTP (Nginx) server web acceso CentOS 7 VPS e ti mostrerà anche come trovare e installare i pacchetti software sul client CentOS 7 macchine.
Yum HTTP Repository Server: CentOS 7 [192.168.0.100] Macchina cliente: CentOS 7 [192.168.0.101]
1. Innanzitutto inizia installando il server HTTP Nginx dal repository EPEL utilizzando il gestore di pacchetti YUM come segue.
# yum install epel-release. # yum install nginx
2. Dopo aver installato il server web Nginx, puoi avviarlo per la prima volta e abilitarlo per l'avvio automatico all'avvio del sistema.
# systemctl avvia nginx. # systemctl abilita nginx. # stato systemctl nginx.
3. Successivamente, è necessario aprire la porta 80 e 443 per consentire il traffico web al servizio Nginx, aggiornare le regole del firewall di sistema per consentire l'attivazione dei pacchetti in entrata HTTP e HTTPS utilizzando i comandi sottostanti.
# firewall-cmd --zone=public --permanent --add-service=http. # firewall-cmd --zone=public --permanent --add-service=https. # firewall-cmd --reload.
4. Ora puoi confermare che il tuo server Nginx è attivo e funzionante, utilizzando il seguente URL; se vedi la pagina web Nginx predefinita, tutto va bene.
http://SERVER_DOMAIN_NAME_OR_IP
5. In questo passaggio, è necessario installare i pacchetti richiesti per creare, configurare e gestire il proprio repository locale.
# yum install createrepo yum-utils.
6. Quindi, crea le directory necessarie (repository yum) che memorizzeranno i pacchetti e tutte le informazioni correlate.
# mkdir -p /var/www/html/repos/{base, centosplus, extra, aggiornamenti}
7. Quindi usa il riposizionamento strumento per sincronizzare CentOS YUM repository nelle directory locali come mostrato.
# reposync -g -l -d -m --repoid=base --newest-only --download-metadata --download_path=/var/www/html/repos/ # reposync -g -l -d -m --repoid=centosplus --newest-only --download-metadata --download_path=/var/www/html/repos/ # reposync -g -l -d -m --repoid=extras --newest-only --download-metadata --download_path=/var/www/html/repos/ # reposync -g -l -d -m --repoid=updates --newest-only --download-metadata --download_path=/var/www/html/repos/
Plugin caricati: fastmirror, langpacks. Caricamento della velocità del mirror dal file host memorizzato nella cache * base: mirrors.fibergrid.in * epel: mirror.xeonbd.com * extra: mirrors.fibergrid.in * aggiornamenti: mirrors.fibergrid.in. base/7/x86_64/gruppo | 891 kB 00:00:02 Nessun metadato Presto disponibile per la base. (1/9911): 389-ds-base-snmp-1.3.7.5-18.el7.x86_64.rpm | 163 kB 00:00:02 (2/9911): 389-ds-base-devel-1.3.7.5-18.el7.x86_64.rpm | 267 kB 00:00:02 (3/9911): ElectricFence-2.2.2-39.el7.i686.rpm | 35 kB 00:00:00 (4/9911): ElectricFence-2.2.2-39.el7.x86_64.rpm | 35 kB 00:00:00 (5/9911): 389-ds-base-libs-1.3.7.5-18.el7.x86_64.rpm | 695 kB 00:00:04 (6/9911): GConf2-devel-3.2.6-8.el7.i686.rpm | 110 kB 00:00:00 (7/9911): GConf2-devel-3.2.6-8.el7.x86_64.rpm | 110 kB 00:00:00 (8/9911): GConf2-3.2.6-8.el7.i686.rpm | 1.0 MB 00:00:06
Nei comandi precedenti, l'opzione:
-G
– consente la rimozione di pacchetti che non superano il controllo della firma GPG dopo il download.-l
– abilita il supporto del plugin yum.-D
– abilita la cancellazione dei pacchetti locali non più presenti nel repository.-m
– consente il download di comps.xml File.--repoid
– specifica l'ID del repository.--solo-più recenti
– dire a reposync di estrarre solo l'ultima versione di ciascun pacchetto nei repository.--download-metadata
– consente di scaricare tutti i metadati non predefiniti.--download_path
– specifica il percorso per scaricare i pacchetti.8. Quindi, controlla il contenuto delle tue directory locali per assicurarti che tutti i pacchetti siano stati sincronizzati localmente.
# ls -l /var/www/html/repos/base/ # ls -l /var/www/html/repos/base/Packages/ # ls -l /var/www/html/repos/centosplus/ # ls -l /var/www/html/repos/centosplus/Packages/ # ls -l /var/www/html/repos/extras/ # ls -l /var/www/html/repos/extras/Packages/ # ls -l /var/www/html/repos/updates/ # ls -l /var/www/html/repos/updates/Packages/
9. Ora crea un nuovo repository per i repository locali eseguendo i seguenti comandi, dove il flag -G
viene utilizzato per aggiornare le informazioni sul gruppo di pacchetti utilizzando l'opzione specificata .xml
file.
# createrepo -g comps.xml /var/www/html/repos/base/ # createrepo -g comps.xml /var/www/html/repos/centosplus/ # createrepo -g comps.xml /var/www/html/repos/extras/ # createrepo -g comps.xml /var/www/html/repos/updates/
10. Per abilitare la visualizzazione dei repository e dei pacchetti in essi contenuti, tramite un browser Web, creare un blocco server Nginx che punti alla radice dei repository come mostrato.
# vim /etc/nginx/conf.d/repos.conf
Aggiungi il seguente file di configurazione repos.conf.
server { ascolta 80; nome_server repos.test.lab; #change test.lab nella root del tuo dominio reale /var/www/html/repos; posizione / { indice index.php index.html index.htm; indice automatico attivo; #enable elenco dell'indice di directory } }
Salva il file e chiudilo.
11. Quindi riavvia il tuo server Nginx e visualizza i repository da un browser Web utilizzando il seguente URL.
http://repos.test.lab.
12. Quindi, aggiungi un cron job che sincronizzerà automaticamente i tuoi repository locali con i repository CentOS ufficiali per ottenere gli aggiornamenti e le patch di sicurezza.
# vim /etc/cron.daily/update-localrepos.
Aggiungi questi comandi nello script.
#!/bin/bash. ##specifica tutti i repository locali in un'unica variabile. LOCAL_REPOS=”aggiornamenti extra base centosplus” ##un ciclo per aggiornare i repository uno alla volta per REPO in ${LOCAL_REPOS}; fare. reposync -g -l -d -m --repoid=$REPO --solo più recente --download-metadata --download_path=/var/www/html/repos/ createrepo -g comps.xml /var/www/html/repos/$REPO/ done.
Salva lo script e chiudilo e imposta le autorizzazioni appropriate su di esso.
# chmod 755 /etc/cron.daily/update-localrepos.
13. Ora sul tuo CentOS macchine client, aggiungi i tuoi repository locali alla configurazione YUM.
# vim /etc/yum.repos.d/local-repos.repo.
Copia e incolla la configurazione qui sotto nel file local-repos.repo (effettuare modifiche ove necessario).
[local-base] name=CentOS Base. baseurl= http://repos.test.lab/base/ gpgcheck=0. abilitato=1 [local-centosplus] name=CentOS CentOSPlus. baseurl= http://repos.test.lab/centosplus/ gpgcheck=0. abilitato=1 [extra-locali] name=Extra CentOS. baseurl= http://repos.test.lab/extras/ gpgcheck=0. abilitato=1 [aggiornamenti-locali] name=Aggiornamenti CentOS. baseurl= http://repos.test.lab/updates/ gpgcheck=0. abilitato=1.
Salva il file e inizia a utilizzare i tuoi mirror YUM locali.
14. Successivamente, esegui il comando seguente per visualizzare i tuoi repository locali nell'elenco dei repository YUM disponibili, sui computer client.
# yum repolista. O. # gnam repolista tutto.
È tutto! In questo articolo abbiamo spiegato come configurare un repository YUM locale su CentOS 7. Speriamo che tu abbia trovato utile questa guida. Se hai domande o altri pensieri da condividere, usa il modulo di commento qui sotto.