OT: zypper und mkinitrd
Hallo, ich habe mal eine - vielleicht blöde - Frage. Meine Probleme mit einem fehlenden/falsch eingestellten Grafikkarten-Treiber habe ich jetzt dadurch gelöst, dass ich auf mein altes Laptop eine openSUSE 11.4 installiert habe. Danach habe ich mit zypper (d)up den neusten Stand hergestellt und dann auf 12.1, 12.2 und jetzt auf 12.3 geupgraded. Ob der Treiber den letzten Schritt überlebt hat, teste ich morgen. Was aber wirklich nervt, ist der Umstand, dass zypper gefühlte 1.000 Mal ein mkinitrd ausführt. Das dauert auf der Kiste immer ewig. Ich verstehe, dass das notwendig ist, wenn man bestimmte Pakete einzeln installiert. Aber braucht man das wirklich, wenn in meinem Beispiel 1.770 Pakete geupgraded werden nach jedem 50sten Paket? In zypper.conf ist zur Sicherheit "multiversion = provides:multiversion(kernel)" gesetzt. Drei Kernel sind dabei. Ein Durchlauf von mkinitrd dauert damit knapp 3 min... Seit gestern Vormittag bin ich bloß am Installieren. Wäre es nicht möglich, dass zypper sich bei der ersten Anforderung merkt, dass ein mkinitrd notwendig ist und es dann ganz am Schluss einmal ausführt? Oder ist das völlig abwegig? Ich bin mir fast sicher, da hat schon einmal jemand drüber nachgedacht. Wo finde ich was dazu? Gruß, Alex -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am 07.08.2013 23:15, schrieb Alex Winzer:
Was aber wirklich nervt, ist der Umstand, dass zypper gefühlte 1.000 Mal ein mkinitrd ausführt. Das dauert auf der Kiste immer ewig. Ich verstehe, dass das notwendig ist, wenn man bestimmte Pakete einzeln installiert. Aber braucht man das wirklich, wenn in meinem Beispiel 1.770 Pakete geupgraded werden nach jedem 50sten Paket?
Soweit ich weiß liegt das nicht an zypper, sondern an rpm. Das auslösen von mkinitrd erfolgt durch skripte, die nach dem Installieren von diversen .rpm-Paketen ausgeführt werden (%post-Scripts). Mir ist keine Option für zypper bekannt, die die Skripte unterdrückt (--noscripts bzw. --nopost heißen die Parameter bei rpm). Wäre auch nicht unbedingt sinnvoll, nicht in jedem Skript steht (nur) mkinitrd. Gruß, --- Lutz Thuns openSUSE member (lOtz1009) LXDE team -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo Lutz, hallo Alex, hallo Leute, Am Donnerstag, 8. August 2013 schrieb Lutz Thuns:
Am 07.08.2013 23:15, schrieb Alex Winzer:
Was aber wirklich nervt, ist der Umstand, dass zypper gefühlte 1.000 Mal ein mkinitrd ausführt. Das dauert auf der Kiste immer ewig. Ich verstehe, dass das notwendig ist, wenn man bestimmte Pakete einzeln installiert. Aber braucht man das wirklich, wenn in meinem Beispiel 1.770 Pakete geupgraded werden nach jedem 50sten Paket?
Soweit ich weiß liegt das nicht an zypper, sondern an rpm. Das auslösen von mkinitrd erfolgt durch skripte, die nach dem Installieren von diversen .rpm-Paketen ausgeführt werden (%post-Scripts). Mir ist keine Option für zypper bekannt, die die Skripte unterdrückt (--noscripts bzw. --nopost heißen die Parameter bei rpm). Wäre auch nicht unbedingt sinnvoll, nicht in jedem Skript steht (nur) mkinitrd.
Genau, das fasst die Situation ganz gut zusammen. Für zukünftige Versionen ist allerdings eine Verbesserung zu erwarten: %posttrans-Scripte, also Scripte, die nach der kompletten Transaktion ausgeführt werden. rpm kann das schon länger, aber weil zypper die Pakete einzeln installiert (= eine Transaktion pro Paket), ist es eher witzlos. Inzwischen hat auch Zypper den posttrans-Support (dank der Aufspaltung des texlive-Pakets in tausende Pakete, alle mit einem %post-Script ;-) - bis das für alle Pakete mit mkinitrd-Aufruf geändert ist, kann es aber noch etwas dauern. (Du kannst gern einen Bugreport einreichen - ich würde den Fix aber erst für die 13.2 erwarten.) Gruß Christian Boltz -- And still I don't see the problem. Just add a GNOME2 theme to XFCE and people will actually find they have additional useful options with XFCE that they did not have with GNOME :-) [Stefan Seyfried in opensuse-factory] -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo, On 08.08.2013 21:21, Christian Boltz wrote:
Hallo Lutz, hallo Alex, hallo Leute,
Am Donnerstag, 8. August 2013 schrieb Lutz Thuns:
Am 07.08.2013 23:15, schrieb Alex Winzer:
Was aber wirklich nervt, ist der Umstand, dass zypper gefühlte 1.000 Mal ein mkinitrd ausführt. Das dauert auf der Kiste immer ewig. Ich verstehe, dass das notwendig ist, wenn man bestimmte Pakete einzeln installiert. Aber braucht man das wirklich, wenn in meinem Beispiel 1.770 Pakete geupgraded werden nach jedem 50sten Paket?
Soweit ich weiß liegt das nicht an zypper, sondern an rpm. Das auslösen von mkinitrd erfolgt durch skripte, die nach dem Installieren von diversen .rpm-Paketen ausgeführt werden (%post-Scripts). Mir ist keine Option für zypper bekannt, die die Skripte unterdrückt (--noscripts bzw. --nopost heißen die Parameter bei rpm). Wäre auch nicht unbedingt sinnvoll, nicht in jedem Skript steht (nur) mkinitrd.
<schnipp> Wenn nicht _nur_ mkinitrd drinsteht, kann er ja den Rest ausführen und sich nur mkinird ganz für den Schluss aufheben. Das war meine Idee, die ich aber offensichtlich nicht als erster hatte... <schnapp>
Genau, das fasst die Situation ganz gut zusammen.
Für zukünftige Versionen ist allerdings eine Verbesserung zu erwarten: %posttrans-Scripte, also Scripte, die nach der kompletten Transaktion ausgeführt werden. rpm kann das schon länger, aber weil zypper die Pakete einzeln installiert (= eine Transaktion pro Paket), ist es eher witzlos.
Danke für die _ausführlichen_ Antworten. Mich hatte das früher nie gestört. Aber ich hatte Probleme mit einem älteren Laptop. Dem habe ich mit einer 11.4er auf die Sprünge geholfen und habe mich dann in 3 weiteren Schritten hochge(dup)t auf 12.3. Das dauerte u.a. wegen mkinitrd ewig.
Inzwischen hat auch Zypper den posttrans-Support (dank der Aufspaltung des texlive-Pakets in tausende Pakete, alle mit einem %post-Script ;-) - bis das für alle Pakete mit mkinitrd-Aufruf geändert ist, kann es aber noch etwas dauern. (Du kannst gern einen Bugreport einreichen - ich würde den Fix aber erst für die 13.2 erwarten.)
Ich denke, dass das kein Bug, sondern wohl eher ein fehlendes Feature ist. Du schreibst ja selbst, dass an der Übertragung des %post-Script-Systems auch auf zypper gearbeitet wird. Warum sollte ich die fleißigen Helfer noch zuästzlich mit einem Bugreport nerven ;-) Nebenbei: Ist das ein "zulässiger" Weg, über einen Bugreport fehlende, aber gewünschte Funktionen anzufordern? Gruß, Alex -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo Alex, hallo Leute, Am Freitag, 9. August 2013 schrieb Alex Winzer:
On 08.08.2013 21:21, Christian Boltz wrote:
Inzwischen hat auch Zypper den posttrans-Support (dank der Aufspaltung des texlive-Pakets in tausende Pakete, alle mit einem %post-Script ;-) - bis das für alle Pakete mit mkinitrd-Aufruf geändert ist, kann es aber noch etwas dauern. (Du kannst gern einen Bugreport einreichen - ich würde den Fix aber erst für die 13.2 erwarten.)
Ich denke, dass das kein Bug, sondern wohl eher ein fehlendes Feature ist. Du schreibst ja selbst, dass an der Übertragung des %post-Script-Systems auch auf zypper gearbeitet wird. Warum sollte ich die fleißigen Helfer noch zuästzlich mit einem Bugreport nerven ;-)
Weil ich nicht genau weiß, ob schon jemand die mkinitrd-Aufrufe im Visier hat ;-) Davon abgesehen sind Bugreports eine zulässige (und produktive) Art des Nervens ;-)
Nebenbei: Ist das ein "zulässiger" Weg, über einen Bugreport fehlende, aber gewünschte Funktionen anzufordern?
Kommt auf die Formulierung an ;-) "$paket should use %posttrans for calling mkinitrd" wäre ein Feature Request (via features.opensuse.org) "mkinitrd called 30 times in zypper dup" ist ein Bug (bei den Details kannst Du ja erwähnen, dass %posttrans ganz nützlich wäre ;-) Egal welchen Weg Du nimmst - es wäre nützlich, eine Liste der Pakete mit mkinitrd-Aufruf mitzuliefern. Ideal wäre ein Bugreport pro Paket - oder alternativ gleich ein Submit Request ;-) Hmm, ich sehe gerade, dass zumindest teilweise schon dran gearbeitet wird: # rpm -q --scripts mkinitrd # aktuelle Factory-Version [...] posttrans scriptlet (using /bin/sh): /sbin/mkinitrd_setup /sbin/mkinitrd Der Kernel macht den Aufruf scheinbar noch in %post, andere Pakete habe ich nicht nachgesehen. Gruß Christian Boltz -- a) Du schickst keine Config b) Du schickst kein Logfile Da (a) und (b) nicht da ist, kann ich also nur mit (c) antworten: (c) müßte aber gehen [Peer Heinlein in postfixbuch-users] -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo Christian, hallo Leute, On 09.08.2013 13:54, Christian Boltz wrote:
Hallo Alex, hallo Leute,
Am Freitag, 9. August 2013 schrieb Alex Winzer:
On 08.08.2013 21:21, Christian Boltz wrote:
[...]
Ich denke, dass das kein Bug, sondern wohl eher ein fehlendes Feature ist. Du schreibst ja selbst, dass an der Übertragung des %post-Script-Systems auch auf zypper gearbeitet wird. Warum sollte ich die fleißigen Helfer noch zuästzlich mit einem Bugreport nerven ;-)
Weil ich nicht genau weiß, ob schon jemand die mkinitrd-Aufrufe im Visier hat ;-)
Davon abgesehen sind Bugreports eine zulässige (und produktive) Art des Nervens ;-)
Nebenbei: Ist das ein "zulässiger" Weg, über einen Bugreport fehlende, aber gewünschte Funktionen anzufordern?
Kommt auf die Formulierung an ;-)
"$paket should use %posttrans for calling mkinitrd" wäre ein Feature Request (via features.opensuse.org)
Nicht schlecht! Das werde ich mir für die Zukunft mal merken.
"mkinitrd called 30 times in zypper dup" ist ein Bug (bei den Details kannst Du ja erwähnen, dass %posttrans ganz nützlich wäre ;-)
Egal welchen Weg Du nimmst - es wäre nützlich, eine Liste der Pakete mit mkinitrd-Aufruf mitzuliefern. Ideal wäre ein Bugreport pro Paket - oder alternativ gleich ein Submit Request ;-)
Genau hier kann ich _leider_ nicht (mehr) behilflich sein. Ich habe auch nach dem letzten zypper dup und nach ausführlichem Testen mit meinem Laptop zypper.log und alles in /var/log/zypper/ platt gemacht. Waren irgendwie so knapp 30 MB. Ich müsste jetzt also wieder 11.4 installieren und das Spiel nochmal von vorn beginnen. --- Frau und Kinder würden mich am Wochenende kollektiv verhauen.
Hmm, ich sehe gerade, dass zumindest teilweise schon dran gearbeitet wird:
# rpm -q --scripts mkinitrd # aktuelle Factory-Version [...] posttrans scriptlet (using /bin/sh): /sbin/mkinitrd_setup /sbin/mkinitrd
Der Kernel macht den Aufruf scheinbar noch in %post, andere Pakete habe ich nicht nachgesehen.
Da habe ich ja nochmal Glück gehabt. Es kommt aber bald 13.1 raus. Und da ich neben der Aufräuminits auch ein wenig an Versionitis leide, wird dann ein zypper dup fällig. Ich schaue mir das an und werde dann ggf. einen Bugreport/Request machen, denn das Phänomen dürfte ja bei 13.1 noch bestehen. Danke, nochmal für das howto. Gruß, Alex -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am 07.08.2013 23:15, schrieb Alex Winzer:
Wäre es nicht möglich, dass zypper sich bei der ersten Anforderung merkt, dass ein mkinitrd notwendig ist und es dann ganz am Schluss einmal ausführt?
Möglich wäre das, aber bisher hat meines Wissens nach noch niemand implementiert.
Oder ist das völlig abwegig? Ganz im Gegenteil.
Philipp -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
participants (4)
-
Alex Winzer
-
Christian Boltz
-
Lutz Thuns
-
Philipp Thomas