Wéi Setup Local HTTP Yum Repository op CentOS 7
E Software Repository (repo kuerz) ass eng zentral Dateiespäicherplaz fir Software Packagen ze halen an z'erhalen, vun deenen d'Benotzer Pakete kënnen erofhuelen an se op hire Computer installéieren.
Repositories ginn dacks op Serveren an engem Netz gespäichert, zum Beispill en Internet, dee vu ville Benotzer zougänglech ka ginn. Wéi och ëmmer, Dir kënnt e lokale Repository op Ärem Computer erstellen an konfiguréieren an et als eenzege Benotzer zougräifen oder Zougang zu anere Maschinnen op Ärem LAN (Local Area Network) erlaben.
Ee Virdeel fir e lokale Repository opzestellen ass datt Dir keng Internetverbindung braucht fir Software Packagen z'installéieren.
YUM (Yellowdog Updater Modified) ass e wäit benotzte Package Management Tool fir RPM (RedHat Package Manager) baséiert op Linux Systemer, wat Softwareinstallatioun einfach op Red Hat/CentOS Linux mécht.
An dësem Artikel erkläre mir wéi Dir e lokalen YUM Repository iwwer HTTP (Nginx) Webserver op CentOS 7 VPS opstellt an Iech och weisen wéi Dir Software Packagen op Client CentOS 7 Maschinnen fannt an installéiere wëllt.
Yum HTTP Repository Server: CentOS 7 [192.168.0.100] Client Machine: CentOS 7 [192.168.0.101]
Schrëtt 1: Installéieren Nginx Web Server
1. Start fir d'éischt mam Nginx HTTP-Server aus dem EPEL-Repository mat dem YUM Package Manager ze installéieren wéi folgend.
# yum install epel-release # yum install nginx
2. Wann Dir den Nginx Webserver installéiert hutt, kënnt Dir et fir d'éischte Kéier starten an et aktivéieren fir automatesch beim Systemboot ze starten.
# systemctl start nginx # systemctl enable nginx # systemctl status nginx
3. Als nächst musst Dir den Hafen 80 an 443 opmaachen fir de Webverkéier op den Nginx Service z'erméiglechen, d'System Firewall Regelen aktualiséieren fir inbound Päckchen op HTTP an HTTPS z'erméiglechen mat de Kommandoen hei drënner.
# firewall-cmd --zone=public --permanent --add-service=http # firewall-cmd --zone=public --permanent --add-service=https # firewall-cmd --reload
4. Elo kënnt Dir bestätegen datt Ären Nginx-Server op a lafen ass, mat der folgender URL; wann Dir d'Standard Nginx Websäit gesitt, ass alles gutt.
http://SERVER_DOMAIN_NAME_OR_IP
Schrëtt 2: Erstellt e Yum Local Repository
5. An dësem Schrëtt musst Dir déi erfuerderlech Packagen installéieren fir Äert lokalt Repository ze kreéieren, ze konfiguréieren an ze managen.
# yum install createrepo yum-utils
6. Als nächst erstellt déi néideg Verzeichnisser (Yum Repositories) déi Packagen an all verbonne Informatioun späicheren.
# mkdir -p /var/www/html/repos/{base,centosplus,extras,updates}
7. Benotzt dann d'Reposync-Tool fir CentOS YUM Repositories op d'lokal Verzeichnisser ze synchroniséieren wéi se gewisen.
# 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/
Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.fibergrid.in * epel: mirror.xeonbd.com * extras: mirrors.fibergrid.in * updates: mirrors.fibergrid.in base/7/x86_64/group | 891 kB 00:00:02 No Presto metadata available for 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
An den uewe genannte Kommandoen ass d'Optioun:
-g
- erméiglecht d'Ewechhuele vu Paketen, déi d'GPG Ënnerschrëft iwwerpréiwen nom Download.-l
– aktivéiert Yum Plugin Support.-d
- erméiglecht d'Läschen vu lokalen Packagen déi net méi am Repository präsent sinn.-m
– erméiglecht den Download vun comps.xml Dateien.--repoid
– spezifizéiert d'Repository ID.--neest-nëmmen
- sot dem reposync nëmmen déi lescht Versioun vun all Package am Repos ze zéien.--download-Metadaten
- erlaabt all net-Standard Metadaten erofzelueden.--download_path
– spezifizéiert de Wee fir Packagen erofzelueden.
8. Als nächst, kontrolléiert den Inhalt vun Äre lokalen Verzeichnisser fir sécherzestellen datt all d'Packagen lokal synchroniséiert goufen.
# 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. Erstellt elo eng nei Repodaten fir déi lokal Repositories andeems Dir déi folgend Kommandoen ausféiert, wou de Fändel -g
benotzt gëtt fir d'Informatioun vun der Paketgrupp mat der spezifizéierter .xml
Datei ze aktualiséieren .
# 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. Fir d'Visioun vu Repositories a Packagen an hinnen z'erméiglechen, iwwer e Webbrowser, erstellt en Nginx Serverblock deen op d'Wurzel vun Äre Repositories weist wéi gewisen.
# vim /etc/nginx/conf.d/repos.conf
Füügt déi folgend Konfiguratioun vun der Datei repos.conf.
server { listen 80; server_name repos.test.lab; #change test.lab to your real domain root /var/www/html/repos; location / { index index.php index.html index.htm; autoindex on; #enable listing of directory index } }
Späichert d'Datei a maach se zou.
11. Da restart Ären Nginx Server a kuckt d'Repositories aus engem Webbrowser mat der folgender URL.
http://repos.test.lab
Schrëtt 3: Erstellt e Cron Job fir Repositories ze synchroniséieren an ze kreéieren
12. Als nächst füügt e Cron Job un, deen automatesch Är lokal Repos mat den offiziellen CentOS Repos synchroniséiert fir d'Aktualiséierungen a Sécherheetspatches ze gräifen.
# vim /etc/cron.daily/update-localrepos
Füügt dës Kommandoen am Skript.
#!/bin/bash ##specify all local repositories in a single variable LOCAL_REPOS=”base centosplus extras updates” ##a loop to update repos one at a time for REPO in ${LOCAL_REPOS}; do reposync -g -l -d -m --repoid=$REPO --newest-only --download-metadata --download_path=/var/www/html/repos/ createrepo -g comps.xml /var/www/html/repos/$REPO/ done
Späichert de Skript a maach et zou a setzt déi entspriechend Permissiounen drop.
# chmod 755 /etc/cron.daily/update-localrepos
Schrëtt 4: Setup Local Yum Repository op Client Maschinnen
13. Elo op Är CentOS Client Maschinnen, füügt Är lokal Repos un d'YUM Konfiguratioun.
# vim /etc/yum.repos.d/local-repos.repo
Kopéiert a paste d'Konfiguratioun hei ënnen an der Datei local-repos.repo (ännert Ännerunge wann néideg).
[local-base] name=CentOS Base baseurl=http://repos.test.lab/base/ gpgcheck=0 enabled=1 [local-centosplus] name=CentOS CentOSPlus baseurl=http://repos.test.lab/centosplus/ gpgcheck=0 enabled=1 [local-extras] name=CentOS Extras baseurl=http://repos.test.lab/extras/ gpgcheck=0 enabled=1 [local-updates] name=CentOS Updates baseurl=http://repos.test.lab/updates/ gpgcheck=0 enabled=1
Späichert d'Datei a fänkt un Är lokal YUM Spigelen ze benotzen.
14. Nächst, fuert de folgende Kommando fir Är lokal Repos an der Lëscht vun verfügbaren YUM Repos ze gesinn, op de Client Maschinnen.
# yum repolist OR # yum repolist all
Dat ass alles! An dësem Artikel hu mir erkläert wéi Dir e lokalen YUM Repository op CentOS 7. Mir hoffen datt Dir dëse Guide nëtzlech fonnt hutt. Wann Dir Froen hutt, oder all aner Gedanken ze deelen, benotzt de Kommentarformular hei drënner.