Translated message

A translation of this page exists in English.

Wie erstellt man eine lokale Repository

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 7

Issue

  • Man kann yum verwenden um Pakete für Red Hat Enterprise Linux 5, 6 und 7 von einer benutzerdefinierten Repository zu aktualisieren oder installieren.
  • Welche Pakete sollte ich installieren, damit die Befehle createrepo und reposync zur Verfügung sind?
  • Wie aktualisiere ich den Server/das System über eine lokale Repository?
  • Wie erstelle ich eine lokale Repository für Updates?
  • Wie erstelle ich eine lokale Repository für Red Hat Enterprise Linux?
  • Manche Pakete müssen in die lokale Repository eingefügt werden. Wie kann man das machen?

Resolution

Um yum zur Installation oder Aktualisierung von Paketen von einer ISO Datei zu verwenden muss man eine lokale Repository erstellen:

  1. Erstellen Sie das Verzeichnis in welchem die Repository sein soll:

    # mkdir -p /var/www/html/repo    
    
  2. Es gibt zwei Möglichkeiten wie man eine Repository erstellen kann:

    • Bewegen Sie die RPMs für die Repository in das Verzeichnis, und dann führen Sie createrepo aus:

      # cp *.rpm /var/www/html/repo
      # createrepo /var/www/html/repo
      
    • Oder, reposync gegen eine existierende Repository:

      # reposync -p /var/www/html/repo -r <REPOID> -l
      # createrepo /var/www/html/repo    
      
  3. Starten Sie Apache und bestätigen Sie den Zugriff auf die repodata Dateien:

    # wget http://localhost/repo/repomd.xml
    # wget http://myfqdn.com/repo/repomd.xml    
    
  4. Falls beide Befehle erfolgreich abgelaufen sind, können Sie eine httpd basierende yum Repository erstellen, welche für diesen Server oder einen anderen verwendet werden kann.
  5. Sollten Pakete später dem Repository hinzugefügt werden, fügen Sie die RPMs einfach in das Verzeichnis ein und führen Sie folgenden Befehl aus:

    # createrepo --update
    

VERMERK:

  • Bei der Synchronisation von Repositories von dem Red Hat Satellite oder Red Hat Subscription Management, werden nur Repositories synchronisiert welche der Server abonniert.
    Der folgende Befehl zeigt Repositories an, die erreichbar durch ein ausgewähltes Plugin sind. Die YUMPLUGIN Variabel kann mit einem Plugin Namen ersetzt werden:

    # YUMPLUGIN=rhnplugin; cd /etc/yum/pluginconf.d/ && echo *.conf|sed "s/$YUMPLUGIN.conf//"|sed 's/\([0-9a-zA-Z\-]*\).conf/--disableplugin=\1/g'|xargs yum repolist && cd - >/dev/null
    
  • Um die Befehle createrepo und repo-sync bereit zu haben, installieren Sie bitte die Pakete createrepo und yum-utils, da die nicht in dem standard RHEL Setup sind:

    # yum install -y createrepo yum-utils
    

Diagnostic Steps

Um Problem wie diese zu beheben muss Apache Zugriff auf diese Dateien haben. Dies kann Berechtigungen, ACLs und SELinux Kontexte (falls aktiviert) beinhalten.

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments