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 Pflege von Softwarepaketen, von dem aus Benutzer Pakete abrufen und auf ihren Rechnern installieren können.

Repositories werden häufig auf Servern in einem Netzwerk gespeichert, z. B. im Internet, auf die 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 (Local Area Network) zulassen.

Ein Vorteil der Einrichtung eines lokalen Repositorys besteht darin, dass Sie keine Internetverbindung benötigen, um Softwarepakete zu installieren.

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

In diesem Artikel erklären wir Ihnen, wie Sie ein lokales YUM-Repository über HTTP (Nginx)-Webserver auf CentOS 7 VPS einrichten und wie Sie Softwarepakete auf Client-CentOS 7-Computern 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: Nginx-Webserver installieren

1. Beginnen Sie zunächst mit der Installation des Nginx-HTTP-Servers aus dem EPEL-Repository mit dem YUM-Paketmanager 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 aktivieren, dass er beim Systemstart automatisch startet.

 
systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Als nächstes müssen Sie Port 80 und 443 öffnen, um Webverkehr zum Nginx-Dienst zuzulassen, und die Regeln der Systemfirewall aktualisieren, um eingehende Pakete auf HTTP und HTTPS mit den folgenden Befehlen zuzulassen.

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

4. Jetzt können Sie mit 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 eines lokalen Yum-Repositorys

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-Repositories), 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/
Beispiel-Ausgabe
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 wird die Option:

  • -g – ermöglicht das Entfernen von Paketen, die die GPG-Signaturprüfung nach dem Herunterladen nicht bestehen.
  • -l – aktiviert die Unterstützung des Yum-Plugins.
  • -d – ermöglicht das Löschen von lokalen Paketen, die nicht mehr im Repository vorhanden sind.
  • -m – ermöglicht das Herunterladen von comps.xml Dateien.
  • --repoid – gibt die Repository-ID an.
  • --newest-only – Weisen Sie reposync an, nur die neueste Version jedes Pakets in den Repositorys 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 ein neues Repodata für die lokalen Repositories, indem Sie die folgenden Befehle ausführen, wobei das Flag -g verwendet wird, um die Paketgruppeninformationen mit der angegebenen .xml Datei zu aktualisieren.

# 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 von Repositories und Paketen in ihnen über einen Webbrowser zu ermöglichen, erstellen Sie einen Nginx-Serverblock, der auf das Stammverzeichnis Ihrer Repositories verweist, wie gezeigt.

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

Fügen Sie die folgende Konfigurationsdatei 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 Repositories in einem Webbrowser unter der folgenden URL an.

http://repos.test.lab

Schritt 3: Erstellen eines Cron-Jobs 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 dem Skript hinzu.

#!/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: Einrichten des lokalen Yum-Repositorys auf Clientcomputern

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

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

Kopieren Sie die untenstehende Konfiguration 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-Spiegelserver.

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

#  yum repolist
OR
yum repolist all

Das ist alles! In diesem Artikel haben wir erklärt, wie Sie ein lokales YUM-Repository unter CentOS 7 einrichten. Wir hoffen, dass Sie diesen Leitfaden nützlich fanden. Wenn Sie Fragen oder andere Gedanken haben, verwenden Sie das Kommentarformular unten.

Verwandte Artikel: