Website-Suche

So richten Sie ein lokales HTTP-Yum-Repository unter CentOS 7 ein


Ein Software-Repository (kurz „repo“) ist ein zentraler Dateispeicherort zur Aufbewahrung und Verwaltung von Softwarepaketen, von dem Benutzer Pakete abrufen und auf ihren Computern installieren können.

Repositories werden häufig auf Servern in einem Netzwerk, beispielsweise im Internet, gespeichert, auf das mehrere Benutzer zugreifen können. Sie können jedoch ein lokales Repository auf Ihrem Computer erstellen und konfigurieren und als einzelner Benutzer darauf zugreifen oder den Zugriff auf andere Computer in Ihrem LAN (Lokales Netzwerk) zulassen.

Ein Vorteil der Einrichtung eines lokalen Repositorys besteht darin, dass Sie zum Installieren von Softwarepaketen keine Internetverbindung benötigen.

YUM (Yellowdog Updater Modified) ist ein weit verbreitetes Paketverwaltungstool für RPM (RedHat Package Manager) auf Basis von Linux-Systemen, das die Softwareinstallation auf Red Hat vereinfacht /CentOS Linux.

In diesem Artikel erklären wir, wie man ein lokales YUM-Repository über einen HTTP (Nginx)-Webserver auf CentOS 7 VPS einrichtet und zeigen Ihnen auch, wie Sie Softwarepakete auf Client-CentOS 7-Rechnern finden und installieren.

Unsere Testumgebung

Yum HTTP Repository Server:	CentOS 7 [192.168.0.100]
Client Machine:		CentOS 7 [192.168.0.101]

Schritt 1: Installieren Sie den Nginx-Webserver

1. Beginnen Sie zunächst mit der Installation des Nginx-HTTP-Servers aus dem EPEL-Repository mithilfe des YUM-Paketmanagers wie folgt.

yum install epel-release
yum install nginx 

2. Sobald Sie den Nginx-Webserver installiert haben, können Sie ihn zum ersten Mal starten und den automatischen Start beim Systemstart aktivieren.

 
systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Als Nächstes müssen Sie die Ports 80 und 443 öffnen, um Webverkehr zum Nginx-Dienst zuzulassen, und die Firewallregeln des Systems aktualisieren, um eingehende Pakete zuzulassen auf HTTP und HTTPS mit den folgenden Befehlen.

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

4. Jetzt können Sie mithilfe der folgenden URL bestätigen, dass Ihr Nginx-Server betriebsbereit ist. Wenn Sie die Standard-Nginx-Webseite sehen, ist alles in Ordnung.

http://SERVER_DOMAIN_NAME_OR_IP 

Schritt 2: Erstellen Sie ein lokales Yum-Repository

5. In diesem Schritt müssen Sie die erforderlichen Pakete zum Erstellen, Konfigurieren und Verwalten Ihres lokalen Repositorys installieren.

yum install createrepo  yum-utils

6. Erstellen Sie als Nächstes die erforderlichen Verzeichnisse (yum-Repositorys), in denen Pakete und alle zugehörigen Informationen gespeichert werden.

mkdir -p /var/www/html/repos/{base,centosplus,extras,updates}

7. Verwenden Sie dann das reposync-Tool, um CentOS YUM-Repositorys wie gezeigt mit den lokalen Verzeichnissen zu synchronisieren.

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/
Beispielausgabe
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     

In den obigen Befehlen ist die Option:

  • -g – ermöglicht das Entfernen von Paketen, die nach dem Herunterladen die GPG-Signaturprüfung nicht bestehen.
  • -l – aktiviert die Yum-Plugin-Unterstützung.
  • -d – ermöglicht das Löschen lokaler Pakete, die nicht mehr im Repository vorhanden sind.
  • -m – ermöglicht das Herunterladen von comps.xml-Dateien.
  • --repoid – gibt die Repository-ID an.
  • --newest-only – weist Reposync an, nur die neueste Version jedes Pakets in den Repos abzurufen.
  • --download-metadata – ermöglicht das Herunterladen aller nicht standardmäßigen Metadaten.
  • --download_path – gibt den Pfad zum Herunterladen von Paketen an.

8. Überprüfen Sie als Nächstes den Inhalt Ihrer lokalen Verzeichnisse, um sicherzustellen, dass alle Pakete lokal synchronisiert wurden.

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. Erstellen Sie nun neue Repodaten für die lokalen Repositorys, indem Sie die folgenden Befehle ausführen, wobei das Flag -g verwendet wird, um die Paketgruppeninformationen mit dem angegebenen zu aktualisieren .xml-Datei.

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. Um die Anzeige der Repositorys und darin enthaltenen Pakete über einen Webbrowser zu ermöglichen, erstellen Sie einen Nginx-Serverblock, der wie gezeigt auf das Stammverzeichnis Ihrer Repositorys verweist.

vim /etc/nginx/conf.d/repos.conf 

Fügen Sie die folgende Konfiguration der Datei repos.conf hinzu.

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
        }
}

Speichern Sie die Datei und schließen Sie sie.

11. Starten Sie dann Ihren Nginx-Server neu und zeigen Sie die Repositorys über einen Webbrowser unter der folgenden URL an.

http://repos.test.lab

Schritt 3: Erstellen Sie einen Cron-Job zum Synchronisieren und Erstellen von Repositorys

12. Fügen Sie als Nächstes einen Cron-Job hinzu, der Ihre lokalen Repos automatisch mit den offiziellen CentOS-Repos synchronisiert, um die Updates und Sicherheitspatches abzurufen.

vim /etc/cron.daily/update-localrepos

Fügen Sie diese Befehle in das Skript ein.

#!/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

Speichern Sie das Skript, schließen Sie es und legen Sie die entsprechenden Berechtigungen fest.

chmod 755 /etc/cron.daily/update-localrepos

Schritt 4: Lokales Yum-Repository auf Client-Rechnern einrichten

13. Fügen Sie nun auf Ihren CentOS-Clientcomputern Ihre lokalen Repos zur YUM-Konfiguration hinzu.

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

Kopieren Sie die Konfiguration unten und fügen Sie sie in die Datei local-repos.repo ein (nehmen Sie ggf. Änderungen vor).

[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

Speichern Sie die Datei und beginnen Sie mit der Verwendung Ihrer lokalen YUM-Spiegel.

14. Führen Sie als Nächstes den folgenden Befehl aus, um Ihre lokalen Repos in der Liste der verfügbaren YUM-Repos auf den Client-Computern anzuzeigen.

 yum repolist
OR
yum repolist all

Das ist alles! In diesem Artikel haben wir erklärt, wie man ein lokales YUM-Repository unter CentOS 7 einrichtet. Wir hoffen, dass Sie diese Anleitung hilfreich fanden. Wenn Sie Fragen oder andere Gedanken haben, die Sie mitteilen möchten, verwenden Sie das Kommentarformular unten.