Mainframe im Terminal: CentOS 4.7 Repository lokal

Da CentOS 4.7 schon längere Zeit nicht mehr aktuell ist und auch die Repositories schon in den Vault verschoben wurden, habe ich ein wenig Sorge, dass die Repositories irgendwann komplett aus dem Netz verschwunden sein könnten. Also dachte ich, dass ein lokales Repository doch eine gute Idee wäre.

Spiegeln des offiziellen Repositories

Das erste, was wir tun müssen, ist natürlich eine passende Freigabe auf unserem Server einrichten. Bei mir ist das „/volume1/centos„.

Also spiegeln wir mal fleißig… wir brauchen aber nicht alles, wir brauchen nur die Repositories für S390 und S390x. Also bauen wir uns doch erst einmal eine Liste von URLs, die wir spiegeln möchten.

http://vault.centos.org/4.7/addons/s390x/
http://vault.centos.org/4.7/addons/s390/
http://vault.centos.org/4.7/centosplus/s390x/
http://vault.centos.org/4.7/centosplus/s390/
http://vault.centos.org/4.7/contrib/s390x/
http://vault.centos.org/4.7/contrib/s390/
http://vault.centos.org/4.7/extras/s390x/
http://vault.centos.org/4.7/extras/s390/
http://vault.centos.org/4.7/os/s390x/
http://vault.centos.org/4.7/os/s390/
http://vault.centos.org/4.7/testing/s390x/
http://vault.centos.org/4.7/testing/s390/
http://vault.centos.org/4.7/updates/s390x/
http://vault.centos.org/4.7/updates/s390/
http://vault.centos.org/RPM-GPG-KEY-centos4

Wer nur die 32/31-bit Variante benötigt, lässt einfach die „s390x“-URLs weg – und umgekehrt. In meinem Fall habe ich beide Varianten gespiegelt.

Diese Liste lassen wir jetzt per wget spiegeln.

cd /volume1/centos
wget --mirror --convert-links --no-parent -i liste.dat

Das dauert jetzt „ein wenig“. Sind ja immerhin ein paar hundert MB, genauer:

du -h vault.centos.org
[...]
5.0G    vault.centos.org

Neues Repository in CentOS einbinden

Wir haben ja vor der Spiegelaktion schon die passenden Freigaben auf unserem Server erstellt. Da wir mit einem Unix arbeiten, bietet sich da natürlich eine NFS-Freigabe an.

Die möchten wir jetzt auf unserem Mainframe auch nutzen. Also mounten wir das Baby:

showmount -e 192.168.0.200
Export list for 192.168.0.200:
/volume1/centos   192.168.*

Und einbinden

mkdir -p /var/yum
mount 192.168.0.200:/volume1/centos /var/yum

Den „mount“ könnten wir noch in „/etc/rc.local“ eintragen, damit das Repository nach einem Neustart auch noch eingebunden ist… ich habe dann bei dieser Gelegenheit noch in „/etc/hosts“ meine NAS dem Namen nach bekanntgegeben.

Repository in Yum einbinden

Dann müssen wir noch die Einstellungen für yum anpassen:

vim /etc/yum.repos.d/CentOS-Base.repo

Darin dann alle http://vault.centos.org gegen file:///var/yum/vault.centos.org tauschen (bitte baseurl und gpgkey!).

Wenn du übrigens da gerade in der Konfiguration herumbastelst, kannst du die beiden Repositories für „Extras“ und „Plus“ auch noch einschalten, indem du „enabled=1“ setzt.

Testlauf

Jetzt sind wir so weit… probieren wir es doch auch aus:

[root@hercules64 yum]# yum update
Setting up Update Process
Setting up repositories
update                    100% |=========================|  951 B    00:00
base                      100% |=========================| 1.1 kB    00:00
contrib                   100% |=========================|  951 B    00:00
centosplus                100% |=========================|  951 B    00:00
addons                    100% |=========================|  951 B    00:00
extras                    100% |=========================|  951 B    00:00
Reading repository metadata in from local files
primary.xml.gz            100% |=========================|  196 B    00:00
primary.xml.gz            100% |=========================|  199 B    00:00
No Packages marked for Update/Obsoletion

Das war zu erwarten, habe ja gerade erst ein Update gemacht. Deshalb installieren wir mal etwas testweise:

[root@hercules64 yum]# yum install mc
Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for mc to pack into transaction set.
mc-4.6.1-0.8.5.s390x.rpm  100% |=========================|  35 kB    00:00
---> Package mc.s390x 1:4.6.1-0.8.5 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 mc                      s390x      1:4.6.1-0.8.5    base              1.7 M

Transaction Summary
=============================================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)
Total download size: 1.7 M

Scheint zu funktionieren 🙂

midnight commander mainframe
midnight commander mainframe

Aufräumen

Wenn man es jetzt ganz genau nimmt, könnten wir die gespiegelten Repositories doch noch ein wenig aufräumen, beispielsweise die KDE- und Gnome-Pakete entfernen (und auch sonstige X-Sachen). Wir bauen ja einen Server und keine Klickibunti-Maschine für Weicheier 🙂

Aber Vorsicht: Nicht alle Pakete, die dem Namen nach für die GUI zuständig sind, sind auch tatsächlich entbehrlich. Beispielsweise wird das GnomeVFS durchaus auch für die manche Konsolenprogramme gebraucht… ja das ist eine Seuche, aber es ist nun mal so.

 

Mainframe im Terminal: CentOS 4.7 yum repositories

Wenn die Installation dann mal durch ist und wir die ersten Minuten mit dem System verbracht haben, möchten wir selbstredend per Package Manager neue Updates oder neue Software „einspielen“. Ich jedenfalls wollte gerade die Zshell installieren 🙂

Aber das 4.7er-Repository ist schon sehr alt – und wird nicht mehr so unterstützt, wie das System es erwartet. Wir müssen ran.

Yum Repositories „aktualisieren“

In /etc/yum.repos.d finden wir die relevante Datei, die wir anpassen müssen.

CentOS-Base.repo

Dort sind Mirrorlisten hinterlegt, die wir nicht mehr brauchen. Die BaseURLs sind dafür auskommentiert, die kommentieren wir wieder ein und ändern sie nach dem Schema

http://vault.centos.org/4.7/[wie vorher]

Der GPG-Key liegt auch woanders – und zwar für alle Repositories hier

http://vault.centos.org/RPM-GPG-KEY-centos4

Vorher sollten wir die alte Repo-Datei vielleicht sichern…

Yum Update

Danach läuft Yum auch ohne Probleme und updated die Pakete:

yummie update
yummie update