Updateproblem beim Switch auf usrmerge mit glibc 3.4.6
Sollte ein eisfair-Server eine Weile keine Updates erfahren haben, kann es nun mit dem über einen Zeitlang schrittweise vorbereiteten und mit dem Update des glibc-Pakets auf die Version 3.4.6 vollzogenen Switch auf usrmerge zu dem Problem kommen, dass ein Updateversuch in einer Endlosschleife des Paketmanagers eisman hängenbleibt.
Folgende Anleitung hat dann in der Regel geholfen, wenn das System schon mit einer 3.4.x-Version der glibc ausgestattet ist:
# eisman query --installed glibc name glibc version 3.4.2 short GLibC - Standard Shared Libraries version 2.37 ...
Als Version muss hier 3.4.0, 3.4.2 oder 3.4.4 erscheinen. Ist dies der Fall kann man sich nach einem Backup des Gesamtsystems an die notwendigen Schritte wagen, dass System auf den aktuellen Stand zu bringen.
Zunächst muss geprüft werden, ob die Datei /etc/init.d/boot.d/S03systemd existiert, die dann auszuführen ist, da dies offensichtlich bei einem systemd-Update und dem danach erforderlichen Reboot unterblieben ist bzw. kein Reboot durchgeführt wurde. Gegebenenfalls sollte man jetzt einen Reboot durchführen und nochmals prüfen, ob die genannte Datei weiterhin existiert, da sie sich nach der Ausführung selber löscht.
# /etc/init.d/boot.d/S03systemd
Um nun das Systemupdate anzustoßen, ohne dass dabei auch das glibc-Paket auf die Version 3.4.6 gehoben wird, muss die Datenbank der installierten Pakete manipuliert werden:
Installierte Version (s. o.) der glibc ist 3.4.0:
# sed -i '/\[glibc\]/ s|3.4.0|3.4.6|g' /var/lib/eisman/installed.db
Installierte Version (s. o.) der glibc ist 3.4.2:
# sed -i '/\[glibc\]/ s|3.4.2|3.4.6|g' /var/lib/eisman/installed.db
Installierte Version (s. o.) der glibc ist 3.4.4:
# sed -i '/\[glibc\]/ s|3.4.4|3.4.6|g' /var/lib/eisman/installed.db
Mit
# eisman update
holen wir nun die aktuellen Paketinformationen vom Paketserver und stoßen das Upgrade des Systems mit
# eisman upgrade
an.
Als letzten Schritt muss nun auch noch die glibc auf den aktuellen Stand gebracht werden:
# eisman install glibc The following packages will be installed: version status name source --------------------------------------------------------------------- 3.4.6 stable glibc https://www.pack-eis.de 1 package(s) using approx. 2 MB of disk space. Continue (y/n) [yes]? y
Alternativ kann auch die oben durchgeführte Modifikation der Datenbank der installierten Pakete wieder rückgängig gemacht werden:
Installierte Version (s. o.) der glibc ist 3.4.0:
# sed -i '/\[glibc\]/ s|3.4.6|3.4.0|g' /var/lib/eisman/installed.db
Installierte Version (s. o.) der glibc ist 3.4.2:
# sed -i '/\[glibc\]/ s|3.4.6|3.4.2|g' /var/lib/eisman/installed.db
Installierte Version (s. o.) der glibc ist 3.4.4:
# sed -i '/\[glibc\]/ s|3.4.6|3.4.4|g' /var/lib/eisman/installed.db
Hiernach wird die glibc mit
# eisman upgrade
auf den aktuellen Stand gebracht.