Gentoo Linux: emerge hat nicht genügend Rechte
Jörg Peschke
- software
Hallo Gentoo-Freunde,
Ich bin gerade ziemlich am Verzweifeln mit einem Gentoo-Problem. Vielleicht kann mir jemand helfen:
Ein (unvollständiges) Upgrade meines Gentoo hat mir einiges zerschossen. So wurde z.b. das Login zerschossen (kann mich nicht mehr einloggen) u.ä.
Um das wieder gerade zu biegen, müsste zuerst einmal das Login wieder gehen, das Problem ist hier wohl, dass er beim Upgrade das pam_login-Paket entfernt hat, aber das Shadow-Paket nicht komplett installiert hat (siehe auch http://forums.gentoo.org/viewtopic-t-443022.html)
Also, Rechner mit Knoppix gebootet (denn Login geht ja nicht mehr),
dann chroot, resolv.conf kopiert, env-update gestartet und "source /etc/profile" eingegeben.
Und ich bin wieder im Gentoo.
Allein, wenn ich
emerge -u shadow
machen will, wirft er beim tar-Entpacken der Sourcen einen Fehler:
Cannot change owner to uid XXX, gid XXX (Operation not permitted)
Gebe ich tar mit "chroot u+s" ein Userbit, läuft tar durch, dann hängt die Installation aber bei
autoconf
(Cannot run configure: Permission denied)
Kann ich emerge irgendwie sagen, dass es ALLES darf?
Bin für jede Hilfe dankbar,
Der verzweifelte Jörg
hallo,
das Problem ist hier wohl, dass er beim Upgrade das pam_login-Paket entfernt hat, aber das Shadow-Paket nicht komplett installiert hat (siehe auch http://forums.gentoo.org/viewtopic-t-443022.html)
Das Problem gibts auch deutsch: http://forums.gentoo.org/viewtopic-t-511957-highlight-login.html
Also, Rechner mit Knoppix gebootet (denn Login geht ja nicht mehr),
dann chroot, resolv.conf kopiert, env-update gestartet und "source /etc/profile" eingegeben.
Warum Knoppix? Hier wärs vermutlich besser, eine Gentoo-LiveCD (miniinstall) zu nehmen.
Cannot change owner to uid XXX, gid XXX (Operation not permitted)
Das klingt verdächtig nach fehlerhaftem mounten deiner Gentoo-Partition(en). Partition einfach mal rw remounten.
Kann ich emerge irgendwie sagen, dass es ALLES darf?
Das darf es - aber es muß auch "alles" vorhanden sein. Schau mal nach, ob in /etc/mtab irgendwas drinsteht. Wenn nicht, machst du ein
grep -v rootfs /proc/mounts > /etc/mtab
Grüße aus Berlin
Christoph S.
Hallo Christoph,
VIelen Dank für Deine Antwort.
Warum Knoppix? Hier wärs vermutlich besser, eine Gentoo-LiveCD (miniinstall) zu nehmen.
Hm, stimmt eigentlich. Vielleicht klappt die emergerei ja nur aus der ge-chroot'eten Umgebung heraus nicht.
Knoppix hab ich genommen, weils grad rum lag, aber die gentoo-CD wär nen Versuch wert.
» Das klingt verdächtig nach fehlerhaftem mounten deiner Gentoo-Partition(en). Partition einfach mal rw remounten.
Nope, gemountet müssten sie richtig sein. Als root darf ich ja auch, was ich will.
Ich kann auch "tar" z.b. ein root user-bit verpassen, dann läuft emerge etwas weiter....aber nicht viel, dann steigt er als nächstes bei "configure" aus.
Das darf es - aber es muß auch "alles" vorhanden sein. Schau mal nach, ob in /etc/mtab irgendwas drinsteht. Wenn nicht, machst du ein
grep -v rootfs /proc/mounts > /etc/mtab
Hab ich gerade probiert, hat aber leider nix verändert.
Was mir gerade noch aufgefallen ist:
Der Fehler ("Cannot change owner to...) betrifft eine User-ID und eine Group-ID (358 und 50), die
nicht in /etc/groups oder /etc/passwd stehen...finde ich eigenartig.
Anyway, danke schonmal für die Antwort.
Grüße,
Jörg
hallo,
Was mir gerade noch aufgefallen ist:
Der Fehler ("Cannot change owner to...) betrifft eine User-ID und eine Group-ID (358 und 50), die
nicht in /etc/groups oder /etc/passwd stehen...finde ich eigenartig.
Genau das kann an Knoppix liegen, das eine etwas andere Benutzerverwaltung hat.
Grüße aus Berlin
Christoph S.
Tach,
Genau das kann an Knoppix liegen, das eine etwas andere Benutzerverwaltung hat
aber nicht nach einem chroot.
mfg
Woodfighter
hallo,
noch etwas:
Ein (unvollständiges) Upgrade meines Gentoo hat mir einiges zerschossen.
Wie hast du das überhaupt fertiggebracht? Wenn du ein
emerge -uD world
versucht hast, reicht ein etc-update hinterher (wozu du aufgefordert wirst, falls nötig) unter Umständen nicht aus. Zur Sicherheit lasse ich hinterher immer noch
revdep-rebuild
laufen.
Vielleicht klappt die emergerei ja nur aus der ge-chroot'eten Umgebung heraus nicht.
chroot mußt du machen, damit emerge überhaupt läuft. Ich muß gelegentlich GRUB neu aufsetzen, hatte ich das letztemal vor kurzem, als ich auf der ersten Platte Vista installiert habe, da war ja der MBR wieder "windowisiert". Das geht dann bei mir grundsätzlich mit folgenden Schritten von der Gentoo-LiveCD:
mount /dev/hdb1 /mnt/gentoo
mount -t proc none /mnt/gentoo/proc
mount -o bind /dev /mnt/gentoo/dev
cd /mnt/gentoo
chroot /mnt/gentoo /bin/bash
grep -v rootfs /proc/mounts > /etc/mtab
Ohne dieses "grep" würde ich bei grub-install Fehlermeldungen bekommen. Der X-Server mag zwar aus einer solchen Umgebung heraus nicht starten, aber den braucht man da auch nicht unbedingt. Alles andere läßt sich problemlos erledigen, natürlich auch emerge. Falls du eine gesonderte online-Verbindung herstellen willst, machst du das von einer anderen Konsole aus, aber _nicht_ aus einer gechrooteten Umgebung. Und ein Herüberkopieren von /etc/resolv.conf solltest du nicht machen.
Und wenn jetzt irgendwelche "Leichen" aus unvollständigen Installationen herumliegen sollten, kann es ganz nützlich sein, noch eclean einzusetzen.
Grüße aus Berlin
Christoph S.
Hallo,
Wie hast du das überhaupt fertiggebracht?
Frag nicht.
Es ging mit einem harmlosen Nicht-mehr-funktionieren des MySQL-Servers los...und dann hangelte ich mich von Paket-Konflikt zu Paketkonflikt, bis emerge sich gar nicht mehr starten ließ...dann ein reboot...and here we go ;)
Mag daran liegen, dass ich in gentoo noch nicht sooo fit bin, sondern eher auf Debian-basierten Systemen daheim bin.
Hm, so wie es aussieht, lag es an einem kaputten tar.
Wir haben ein neues tar manuell installiert, jetzt scheint emergen wieder zu gehen.
Sehr merkwürdig.
Danke Euch allen für die Tipps und Hilfen.
als dann...
emerge -u world
*seufz*
Schönen abend noch,
Jörg
hallo,
Wir haben ein neues tar manuell installiert, jetzt scheint emergen wieder zu gehen.
Das hätte bei deinem "Update" aber sowieso mitkommen müssen, und zwar als eines der ersten Pakete.
emerge -u world
*seufz*
Wenn du dein System sehr lange nicht mehr "geupdated" hast, ist ein anderer emerge-Lauf zu empfehlen. Schau dir aber vorher deine /etc/make.conf an und setze dort die USE-flags, die du vermutlich immer brauchst. Außerdem ist es für die Erneuerung des portage-Trees nützlich, bestimmte Dinge, die man nicht haben will (beispielsweise games) ganz auszuschließen, das kann ein "emerge --sync" deutlich beschleunigen. Nach dem Synchronisieren machst du dann ein
emerge -eav world
um zu sehen, welche Pakete alle erneuert werden müssen. "-a" bewirkt dabei etwas Ähnliches wie "-p" - das heißt, es geht nicht gleich los, sondern du kannst dir die Liste erstmal anschauen. Je nach dem "Alterszustand" deines Systems kann das enorm viel sein. In den letzten Wochen kamen zum Beipiel gcc, glibc und der X-Server neu, und natürlich auch die Kernelquellen. Das sind "dicke Dinger". Und wenn du sicher gehen willst, machst du dann eben ein
emerge -eD world
Das dauert allerdings, weil dir das gesamte System vollkommen neu gebaut wird und nicht nur ein paar Updates angewackelt kommen. Ist aber bei einem System, das möglicherweise defekt ist, der sicherste Weg. Du läßt den Rechner halt über Nacht werkeln
Bei größeren Updates ist es außerdem wichtig, emerge einmal mit "--depclean" laufen zu lassen, um veraltete Pakete aus dem System zu entfernen. Steht in der manpage zu emerge alles sehr schön drin.
Und dann noch: emerge lädt die benötigten Sourcen ins distfiles-Verzeichnis, löscht dort aber keine veralteten Quellpakete. Das kann dazu führen, daß das Verzeichnis ziemlich groß wird. Dann machst du eben noch ein
eclean distfiles
und wirfst damit die Quellpakete raus, die du nicht mehr brauchst.
Ich habe mir angewöhnt, wenigstens einmal pro Woche die "Welt" neu zu bauen, damit bin ich immer ziemlich aktuell. Am besten geht das per cronjob, da brauchst du nicht soviel zu tippen und mußt nur dafür sorgen, daß der Rechner zu der gewünschten Zeit online ist.
Grüße aus Berlin
Christoph S.
Tach Christoph,
Danke für Deine Tipps.
Das Problem an der Sache war, dass der Server (bei uns in der Arbeit) seeeehr lange nicht upgedatet worden ist...will sagen ca. 2 Jahre nicht :)
Der Grund für diese Nachlässigkeit ist einfach der: Wir haben keinen deizierten Systie, Server-Verwaltung mach ich quasi so nebenher, "wenn ich dazu komme".
Und es war eben viel zu tun im letzten Jahr - gut für uns als Firma, schlecht für den armen Server :)
Neulich hab ich mehr oder minder "versehentlich" ein "emerge world" gemacht ("ach machen wir mal wieder ein Update") - tja...
Auf einer Seite über Gentoo hab ich einen Satz gelesen, der mein Dilemma schön zusammenfasst:
"The only real downside of gentoo is: Every package has to be compiled each time it gets updated, so if you miss one or two major upgrades, you're totally fucked up" :)
=> Ich selbst bin zu dem Schluss gekommen, vermutlich bei Gelegenheit mal auf Ubuntu umzusteigen. Dabei will ich nicht Gentoo die Schuld geben, dass das jetzt alles so kompliziert ist, es liegt wohl eher daran, dass mir der "Ubuntu/Debian - Way" etwas mehr liegt als der "Gentoo-Way".
Aber bis es soweit ist, muss das Ding erstmal wieder laufen....
45 packages to go...
Grüße,
Jörg