emerge klagt über gesperrte Pakete: Was mache ich?

4569
oligofren

Wir haben einen alten Entwicklungsserver, auf dem Gentoo läuft. Ich möchte dieses System gerne aktualisieren, stößt aber immer wieder auf Probleme mit dem Verpackungssystem. Es scheint mir, als gäbe es Abhängigkeiten zu verschiedenen Versionen verschiedener Pakete, und ich kann nicht sehen, wie ich es beheben kann.

Das größte Problem betrifft wahrscheinlich Python und Portage. Ich brauche eine neuere Portage, aber es scheint, dass zyklische Abhängigkeiten bestehen.

Ich habe verschiedene Lösungen ausprobiert, bin aber nicht sicher, ob ich von hier aus weitergehen möchte. Irgendwelche Anhaltspunkte, die mich vielleicht weiterbringen könnten?

Weitere Informationen

Das Folgende ist das (relevante Bit des) Ausgangs vom Laufen emerge --update --newuse --deep @world

(lots of normal output ....) [ebuild U ] app-misc/mc-4.7.0.3 [4.6.1-r4] USE="edit%* -slang*"  .... [blocks B ] >=dev-lang/python-2.6.6 (">=dev-lang/python-2.6.6" is blocking sys-apps/portage-2.1.6.7) [blocks B ] <sys-apps/portage-2.1.7.16 ("<sys-apps/portage-2.1.7.16" is blocking app-shells/bash-4.1_p9) [blocks B ] <sys-apps/portage-2.1.9 ("<sys-apps/portage-2.1.9" is blocking dev-lang/python-2.7.1-r1)  * Error: The above package list contains packages which cannot be * installed at the same time on the same system.  (dev-lang/python-2.7.1-r1, ebuild scheduled for merge) pulled in by =dev-lang/python-2* required by (dev-vcs/mercurial-1.7, ebuild scheduled for merge) =dev-lang/python-2*[threads] required by (dev-vcs/mercurial-1.7, ebuild scheduled for merge) =dev-lang/python-2* required by (dev-libs/glib-2.28.6, ebuild scheduled for merge) (and 1 more)  (app-shells/bash-4.1_p9, ebuild scheduled for merge) pulled in by >=app-shells/bash-3.2_p17 required by (sys-apps/portage-2.1.9.42, ebuild scheduled for merge) app-shells/bash required by (sys-block/di-4.18, ebuild scheduled for merge) app-shells/bash required by (app-admin/perl-cleaner-2.7, ebuild scheduled for merge) (and 2 more)  (dev-lang/python-3.1.3-r1, ebuild scheduled for merge) pulled in by dev-lang/python required by (app-admin/python-updater-0.9, ebuild scheduled for merge) >=dev-lang/python-3 required by (sys-apps/portage-2.1.9.42, ebuild scheduled for merge) =dev-lang/python-3.1* required by (dev-java/java-config-2.1.11-r3, ebuild scheduled for merge) 

Dies ist das relevante Bit der Ausgabe, wenn emerge --pretend --depclean ausgeführt wird

Calculating dependencies... done! * Dependencies could not be completely resolved due to * the following required packages not being installed: *  * >=dev-lang/python-2.4 pulled in by: * sys-apps/portage-2.1.6.7 *  * dev-lang/python pulled in by: * dev-java/java-config-2.1.7 *  * dev-lang/python pulled in by: * dev-libs/libxml2-2.6.31 *  * <dev-lang/python-2.6.6 pulled in by: * sys-apps/portage-2.1.6.7 *  * >=dev-lang/python-2.2 pulled in by: * dev-libs/beecrypt-4.1.2-r1 *  * virtual/python pulled in by: * dev-python/pycrypto-2.0.1-r6 *  * >=dev-lang/python-2.3 pulled in by: * dev-vcs/mercurial-1.0.2 *  * >=dev-java/java-config-2.1.9-r1 pulled in by: * dev-libs/beecrypt-4.1.2-r1 *  * virtual/python pulled in by: * dev-lang/swig-1.3.34 *  * dev-lang/python pulled in by: * net-fs/samba-3.0.28a-r1 *  * >=dev-lang/python-2.2 pulled in by: * app-arch/rpm-4.4.6-r6 *  * >=virtual/python-2.2.1 pulled in by: * sys-libs/libcap-1.10-r11 *  * dev-lang/python pulled in by: * sys-libs/cracklib-2.8.9-r1 *  
5
Akzeptiert portage nur die neueste Version von Python? sind alle diese Abhängigkeiten für Python Version 2.x * und höher *? new123456 vor 13 Jahren 0
Ich frage mich, ob du zuerst "portage" auftauchen kannst, das Update alles andere? Eine Weile her, seit ich Portage benutzt habe. Kann eine gute Frage für einen Gentoo-IR-Kanal sein. James T Snell vor 13 Jahren 0
@ phoenix: portage kann nicht aktualisiert werden. das war das problem. oligofren vor 13 Jahren 0
@ new123456: Ich bin mir nicht ganz sicher, ob ich folge ... Sie sehen die Liste der Python-Versionen richtig? Sie sind alle in der 2.X-Serie, nur anders. oligofren vor 13 Jahren 0
@oligofren Die höchste Python-Version scheint 2.6 zu sein - hast du es versucht? new123456 vor 13 Jahren 0

2 Antworten auf die Frage

3
McClane

Vor wenigen Tagen war ich mit demselben Problem konfrontiert. Ich habe keinen genauen Weg, wie es geht, aber hier ist der generische Weg:

Schauen Sie sich zuerst an /var/lib/portage/world. Machen Sie eine Sicherung und zerlegen Sie die Pakete auf die, die Ihr System zum Booten benötigt. Hier sind einige Inhalte, um Sie zum Laufen zu bringen:

app-admin/syslog-ng net-firewall/iptables net-misc/dhcpcd sys-apps/pciutils sys-apps/slocate sys-apps/usbutils sys-boot/grub sys-kernel/gentoo-sources sys-power/acpid sys-process/vixie-cron virtual/inetd 

Alles andere wird später aktualisiert.

Der wichtigste Teil ist, Portage und Python auf die neuesten Versionen zu bringen, also konzentrieren wir uns darauf.

  1. Wechseln Sie zu Ihrem Portage-Verzeichnis:

    emerge --sync 

    oder:

    emerge-webrsync 
  2. Legen Sie ein gültiges Profil fest

    eselect profile list eselect profile set <x> 
  3. Aktualisieren Sie Python / Portage Schritt für Schritt.

    Schauen Sie sich Ihre aktuell installierte Portage-Version an. Aktualisieren Sie Portage auf die nächste Version, die höher ist als die aktuelle (auch wenn die Maske mit ~ x86 maskiert ist), und machen Sie dasselbe für Python. Stellen Sie sicher, dass Sie nach einem Python-Upgrade ausgeführt werden python-updater.

    Führen Sie dies Schritt für Schritt durch, bis Python / Portage auf dem neuesten Stand ist. (Sie können einige der kleineren Versionsaktualisierungen überspringen. Sie werden selbst sehen, welche Versionen zu Kompilierungsfehlern führen und welche.)

  4. Sobald sie arbeiten, versuchen Sie, einige andere Pakete herauszufinden, da sie Ihnen bei Ihrer Aufgabe helfen könnten.

    app-portage/ufed app-portage/autounmask app-portage/gentoolkit 
  5. Sobald Python / Portage auf dem neuesten Stand ist, können Sie Ihre Old World-Datei wiederherstellen und Ihr System aktualisieren.

    emerge -pvauDN world 

    Möglicherweise müssen Sie anrufen:

    emerge ... emerge --depclean revdep-rebuild 

    mehrmals während des Buildvorgangs.

Ich habe vergessen, Ihnen zu danken, Mcclane. Ich hasse es immer, wenn Leute fragen und vergeben keine Punkte. Leider hatte ich keine Zeit, um zu prüfen, ob ich sie zum Laufen bringen könnte. Ich gebe Ihnen also keine Antwort, werde Sie aber dafür unterstützen, dass Sie so umfassende Antworten erstellt haben. Vielen Dank! oligofren vor 13 Jahren 0
0
Sergei

If problem in python then try running python-updater Note that you can select current version of python by command eselect