Frage Optimale Vorgehensweise, um Gentoo Linux zu aktualisieren?


So habe ich Gentoo für eine lange Zeit auf den neuesten Stand gebracht. Ist das der empfohlen Methode? Irgendwelche Fallen oder bessere Methoden zu benutzen?

emerge --sync
emerge -uDav --tree world
emerge -av --depclean
revdep-rebuild -v -- --ask
dispatch-conf
glsa-check -t all
glsa-check -f all

23
2018-05-19 15:51


Ursprung


Ich füge die -N-Flagge auf emerge persönlich hinzu - Tom Ritter
--tree (-t) ist auch praktisch, um zu verstehen, was vor sich geht - lkraav


Antworten:


Es scheint, als ob du es verdeckt hast. Der einzige andere Tipp ist, es ein bisschen langsamer als ein blindes Großhandelsupdate zu nehmen. Sie können die Pakete oder Abhängigkeitsketten immer einzeln mit aktualisieren emerge -DNuav <atom> anstatt world (Verwenden Sie --onesot für Dinge, die Sie nicht zur Weltdatei hinzufügen möchten, wie zum Beispiel System-Bibliotheken).

Beachten Sie, dass es immer einfacher ist, regelmäßig auf dem neuesten Stand zu bleiben, anstatt alle paar Monate eine monolithische Batch-Aktualisierung durchzuführen. Um zu viele Überraschungen zu vermeiden, könnte es hilfreich sein, eine der Mailinglisten zu abonnieren gentoo-user (ACHTUNG: ~ 100 Mails pro Tag auf dieser Liste), da so ziemlich alle größeren Update-Probleme auf der Liste auftauchen und viele Diskussionen darüber führen, wie sie gelöst werden können.

Ich würde vermuten, dass das nächste große "Problem" -Update die Migration zu openrc sein wird, sobald es stabil wird (es wurde in der Mitte des letzten Jahres mit nur ein paar Problemen gemacht, hauptsächlich mit Netzwerkänderungen).


5
2018-06-30 02:18



Ja, auf jeden Fall +1, um auf dem Laufenden zu bleiben, statt in großen Brocken. Es gibt die gelegentlichen Änderungen, die gerade viel brechen. github.com/lkraav/gentoo-cron-weekly ist mein einfaches Toolset für die wöchentliche Berichterstellung. - lkraav


Ich verwende fast dieselben Schritte wie du, außer:

  • eix-sync anstatt emerge --sync weil ich die Änderungen am Portage-Baum gerne sehe. Dies ist besonders nützlich, um Pakete zu erkennen, die ich neu installieren möchte.

  • layman -S (gelegentlich) vor dem main, um Änderungen in Overlays zu synchronisieren.

  • eclean-dist -d nach dem revdep-rebuild um veraltete Tarballs zu reinigen. Ich mache das nach jedem emerge, weil Paket-Downgrades nicht so üblich sind.

  • eix-test-obsolete als letzten Schritt, um meine / etc / portage Dateien sauber und aktuell zu halten. Dies lässt mich auch wissen, wenn ich Pakete installiert habe, die komplett aus portage entfernt wurden, also muss ich das ebuild aus dem Repository holen. Ein aktuelles Beispiel, ich muss alle Versionen von iproute2> 2.6.22.20070710 maskieren, da der ältere Kernel auf meinem Xen VPS läuft, aber kürzlich aus portage entfernt wurde.

eix-sync und eix-test-obsolete sind in App-portage / eix.

eclean-dist ist in app-portage / gentoolkit.


8
2018-06-10 03:39



+1 für Eix-Sync - Tim


  1. emerge --sync oder eix-sync oder emerge-delta-webrsync und eix-update
  2. emerge -av portage
  3. eclean-dist

Überprüfen Sie, ob einer von linux-headers, glibc, binutils, libtool oder gcc magor update hat (z. B. gcc updates von 4.6 bis 4.8). Wenn es nicht geht, gehe zu Schritt 11.

Vollständige Wiederherstellung:

  1. rm -rf PKGDIR/* Ersetzen Sie PKGDIR durch Ihren Pfad zum Paketverzeichnis!
  2. emerge -av linux-headers glibc binutils gcc-config libtool gcc
  3. gcc-config <number of new gcc> Wechseln Sie zu neuem gcc
  4. source /etc/profile
  5. emerge -avb glibc binutils gcc libtool
  6. emerge -avbke system
  7. emerge -avbke world

Wenn Sie in Schritt 10 oder 11 ein Problem haben, beheben Sie es und versuchen Sie es erneut

Welt aktualisieren:

  1. Reinige deine Weltdatei /var/lib/portage/world aus unnötigen Paketen und überprüfen /etc/portage Entitäten
  2. fixpackages
  3. emerge -avuDN world
  4. eselect python update
  5. python-updater -- -av
  6. perl-cleaner --all -- -av
  7. emerge -a --depclean
  8. revdep-rebuild -i -- -av

Wenn Sie in den Schritten 14-18 Probleme haben, beheben Sie diese und wiederholen Sie alle Schritte ab Schritt 13

  1. etc-update oder dispatch-conf
  2. glsa-check -vp affected Sie können betroffene Pakete nach dem Update in den Slots haben
  3. emaint --check all

5
2017-12-24 10:16





Wenn Ihr Ziel ist, das absolut letzte aller Pakete zu haben, dann scheint das ja alle Grundlagen abzudecken. Ich bin überrascht, dass dies für eine lange Zeit für Sie funktioniert hat, weil ich mir vorstellen würde, dass Sie oft von Blöcken, gebrochenen Deps usw. gebissen werden. In den letzten Jahren bin ich viel vorsichtiger geworden, Wählen Sie stattdessen nach dem Anzeigen des Update-Baums Stück für Stück. Gentoo Entwicklung scheint seine Blütezeit überschritten zu haben. Vielleicht liegt es am Aufstieg von Ubuntu.

Wie auch immer, eine zusätzliche Sache, die Sie versuchen könnten, nur um wirklich anspruchsvoll über den ganzen Prozess zu sein, ist das Löschen Ihrer Distfiles. Es gibt Skripte da draußen, wenn Sie suchen.


3
2018-05-19 16:09



Wenn Sie bei unmaskierten Ebuilds bleiben, dann ist Gentoo meiner Meinung nach recht stabil und bricht nicht wirklich durch, indem es eine Synchronisations- und Emerge-Welt erstellt. Sie müssen wissen, was Sie tun, aber das gleiche kann für apt oder yum gesagt werden. Ich bin von beiden gebissen worden. - John Downey
Drei sehr neue Blockaden / Brüche, die ich mir vorstellen kann, sind libcomerr / e2fsprogs, firefox2 / 3 und xorg 1.3 / 1.5. In all diesen Fällen brauchte es nicht-triviales Massieren, um das Großhandels-Update funktionieren zu lassen, und es gab keine ~ Schlüsselwörter. - Adam D'Amico
Die neuesten Versionen von portage - sagen wir innerhalb der letzten 6 Monate - lösen automatisch fast alle Blöcke und Brüche. Einschließlich libcomerr / e2fsprogs. - Dan Carley


glsa-check -t all
glsa-check -f all

Das solltest du zuerst tun. Es ist nicht notwendig, wenn Sie alle Pakete aktualisieren.

Oh, und ich bevorzuge cfg-update;)


3
2018-05-29 12:47





Das ist was ich mache:

emerge --sync         //Synchronize the package manager with the latest 
                      //version of each package.


emerge -aDvNu system  //updates the system, but only important if you want the
                      //latest stable version of the actual compiler and libraries
                      //with the core system.

emerge -uDNav world   //world means everything we've asked to be emerged before
                      //this does not include things that came pre installed.
                      //N means if you change your use directives in 
                      //your make.conf file to pull in the new packages.

emerge -av depclean   //removes libraries or programs that don't have any other 
                      //dependencies because of an update.


revdep-rebuild        //means if something is broken by an update, it 
                      //recompiles it.  Fixes dynamic and static linking problems.

Wenn Sie die Kommentare nicht vollständig verstehen, lesen Sie dies, da es die Autorität ist, wie Sie Ihre Gentoo-Pakete aktualisieren können.

http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=1


1
2017-09-20 21:31





Ihr Prozess ist korrekt, obwohl das Ausführen jedes Befehls wahrscheinlich nicht notwendig ist, mache ich normalerweise nur eine Synchronisierung und eine Update-Welt. Emerge wird Ihnen normalerweise mitteilen, wenn Sie ein Skript ausführen müssen, um eine Datei neu zu erstellen, z. B. während einer großen Python-Aktualisierung, und Sie darüber informieren, wann Konfigurationsänderungen zusammengeführt werden müssen. Da Gentoo eigentlich keinen Upgrade-Pfad von Version zu Version hat. In dem Moment, in dem du aus der Welt kommst, hast du die neueste Version.


0
2018-05-19 16:10





Ich habe dieses Verfahren schon lange benutzt:

emerge -f --update --newuse --deep world && emerge --update --newuse --deep world

Ich, für mich, bevorzuge es, über Nacht zu aktualisieren. Aber manchmal passiert es, dass etwas fehlschlägt und Sie müssen alle (oder einige) Programme erneut herunterladen.

Vielleicht ist der Schalter --newuse überflüssig, aber ich bearbeite meine make.conf oft so, dass es für mich Sinn macht.


0
2018-05-31 18:34



Sie können "--reinstall changed-use" anstelle von "--newuse" verwenden, dies installiert Pakete mit benutzerdefinierten Flags, die Sie explizit geändert haben. Anstatt obsoleted, fügte hinzu, verwenden Sie Flags usw. Sie sollten immer noch mit "--newuse" von Zeit zu Zeit ausführen. - hayalci


Sieht gut aus, obwohl ich nicht so schnell rennen würde.

Wenn Sie keine Anforderung wie niedrigen HDD-Speicherplatz haben, können Sie mit weniger regelmäßigen Intervallen zurückkommen. Es ist nicht schlimm, sie für kurze Zeit in der Nähe zu haben. Wenn Sie das Pech hatten, nach dem Update einige kaputte Pakete zu bemerken, dann würden Sie sicher sein, dass sie nicht durch das Entfernen von losen Abhängigkeiten entstanden sind.


0
2018-06-10 06:46