Benutzer-Werkzeuge

Webseiten-Werkzeuge


computer:linux:eigenes_yum-repository

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

computer:linux:eigenes_yum-repository [2013/01/11 12:43] (aktuell)
christian angelegt
Zeile 1: Zeile 1:
 +Ein eigenes YUM-Repository kann sich als sehr nützlich erweisen, wenn man über eine größere Anzahl an Hosts verfügt und selbst paketierte Software zeitsparend verteilen möchte.
 +Anstatt die Übersetzung auf jedem Host manuell durchzuführen,​ wird die Software in einem RPM-Paket zusammengefasst - diese Pakete können später kinderleicht verteilt werden.
  
 +======Webserver======
 +Zur Verteilung der Pakete wird ein Webserver, idealerweise Apache benötigt. Die folgende Befehle installieren Apache und konfigurieren ihn dahingehend,​ dass er bei jedem Boot automatisch gestartet wird:
 +<​code>​
 +# yum install httpd
 +# chkconfig httpd on
 +# service httpd start
 +</​code>​
 +
 +Ggf. muss noch die Firewall dahingehend konfiguriert werden, dass Zugriffe auf den Webserver zugelassen werden:
 +<​code>​
 +# system-config-firewall-tui
 +...
 +┌───────────────────┤ Trusted Dienste ├────────────────────┐
 +│                                                          │
 +│ Hier können Sie einstellen, welche Dienste als trusted ​  │
 +│ eingestuft sind. Trusted Dienste sind von allen Rechnern │
 +│ oder Netzwerken erreichbar. ​                             │
 +│                                                          │
 +│        [ ] Sicheres WWW (HTTPS) ​               ↑         │
 +│        [ ] TFTP                                ▒         │
 +│        [ ] TFTP-Client ​                        ​▒ ​        │
 +│        [ ] Virtuelle-Maschine-Management ​      ​▒ ​        │
 +│        [ ] Virtuelle-Maschine-Management (TLS) ▮         │
 +│        [*] WWW (HTTP) ​                         ↓         │
 +│                                                          │
 +│                                ┌─────┐ ​  ​┌───────────┐ ​  │
 +│                                │ Vor │   │ Schließen │   │
 +│                                └─────┘ ​  ​└───────────┘ ​  │
 +│                                                          │
 +│                                                          │
 +└──────────────────────────────────────────────────────────┘
 +</​code>​
 +======Repository======
 +Das Repository besteht im wesentlichen aus einem einfachen Ordner, der vom Webserver zur Verfügung gestellt wird. In diesen Ordner werden die zu verteilenden RPM-Pakete kopiert. Anschließend werden mithilfe des Tools **createrepo** (//das ggf. noch installiert werden muss//) noch einige XML- und SQLite-Dateien erstellt, die zur Verwendung mit YUM benötigt werden:
 +<​code>​
 +# yum install createrepo
 +# mkdir /​var/​www/​html/​repo
 +# cp -v /​home/​dev/​rpmbuild/​RPMS/​*.rpm /​var/​www/​html/​repo/​
 +# cd /​var/​www/​html/​repo
 +# createrepo --database .
 +</​code>​
 +
 +Im neu angelegten Ordner **repodata** befindet sich unter anderem eine SQLite-Datenbank,​ die von YUM benötigt wird:
 +<​code>​
 +# ls -A repodata/
 +filelists.sqlite.bz2 ​ other.sqlite.bz2 ​ primary.sqlite.bz2 ​ repomd.xml
 +filelists.xml.gz ​     other.xml.gz ​     primary.xml.gz
 +</​code>​
 +
 +<note important>​
 +Wird SELinux verwendet, wird ein Zugriff auf die verfügbaren Repo-Dateien erstmal unterbunden,​ weil der SELinux-Dateikontext nicht stimmt:
 +<​code>​
 +# ls -ldZ /​var/​www/​html/​repo
 +drwxr-xr-x. root root system_u:​object_r:​usr_t:​s0 ​      /​var/​www/​html/​repo
 +</​code>​
 +Das folgende Kommando definiert, dass alle Dateien unterhalb von **/​var/​www/​html/​repo** immer als Webserver-Daten (''​httpd_sys_content_t''​) gelabelt werden. Der zweite Befehl labelt die Dateien um, sodass der Zugriff erlaubt wird:
 +<​code>​
 +# semanage fcontext -a -t httpd_sys_content_t "/​var/​www/​html/​repo(/​.*)?"​
 +# restorecon -R -v /​var/​www/​html/​repo
 +</​code>​
 +</​note>​
 +======Einbindung im Client======
 +Damit das frisch angelegte Repository auch von einem Client verwendet werden kann, wird eine entsprechende Yum-Konfigurationsdatei unterhalb von **/​etc/​yum.repos.d** angelegt:
 +<​code>​
 +# vi /​etc/​yum.repos.d/​local-repo.repo
 +[local-repo]
 +name=local-repo
 +enabled=1
 +gpgcheck=0
 +baseurl=http://​localhost/​repo
 +
 +ESC ZZ
 +</​code>​
 +
 +<​note>​Auf anderen Host muss der Hostname **localhost** logischerweise durch den FQDN bzw. die IP-Adresse des Repository-Servers ersetzt werden</​note>​
 +
 +Yum sollte nun das frisch hinzugefügte Repository verwenden können:
 +<​code>​
 +# yum repolist local-repo
 +Loaded plugins: product-id, refresh-packagekit,​ security, subscription-manager
 +Updating certificate-based repositories.
 +repo id                              repo name                        status
 +local-repo ​                         local-repo ​                       1
 +repolist: 1
 +</​code>​
 +
 +Auf dem frisch eingerichteten Repository steht 1 Paket zur Verfügung.
computer/linux/eigenes_yum-repository.txt · Zuletzt geändert: 2013/01/11 12:43 von christian