Wie kann ich unter Gentoo alle Pakete neu erstellen, die von einem anderen Paket abhängen?

7

Ich habe einen Fehler gemacht und die Perl-Version ohne Thread in "Threaded by Unmerge" geändert, die USEFlags so geändert , dass sie "Ithreads" enthalten, und "Perl" erneut angezeigt. Jetzt sind die meisten Pakete je nach Perl kaputt. Wie baue ich sie wieder auf?

AlexD
quelle

Antworten:

7

Unterwegs können Sie mit equeryder dependsFunktion die Liste der Dinge abrufen, die von einem Paket abhängen.

# equery depends perl

Wenn Sie alle neu erstellen möchten, versuchen Sie Folgendes:

# emerge -a --oneshot `equery depends perl|awk '{print " ="$1}'`

Sie haben Probleme damit, wenn Sie Pakete installiert haben, die aus dem Portage-Baum entfernt wurden. Daher ist eine vorherige Synchronisierung und ein Welt-Update eine gute Idee.

Für diesen speziellen Fall möchten Sie vielleicht auch einen Blick darauf werfen app-admin/perl-cleaner- es verfügt über spezielle Funktionen zum Neuerstellen von Perl-Modulen.

Matte
quelle
3

Versuchen Sie es mit revdep-rebuild(aus dem app-portage/gentoolkitPaket, wie equery). Es ist ein Tool, das das System nach defekten Abhängigkeiten durchsucht (z. B. fehlende gemeinsam genutzte Bibliotheken) und die Pakete mit defekten Abhängigkeiten neu erstellt. Ein Vorteil gegenüber Mat's Methode ist, dass Sie in den meisten Fällen nicht alle Pakete neu erstellen müssen, die von einem anderen abhängen.

rozcietrzewiacz
quelle
1
revdep-rebuildist das erste, was ich versucht habe, aber es kann diesen Fall nicht behandeln, da die Bibliothek (libperl.so) vorhanden ist, aber einige Symbole fehlen.
AlexD
1
Hmm, seltsam - ich dachte, es hat die USEAbhängigkeitsinformationen bereits richtig behandelt. Da es sich um ein Problem handelt perl, gibt es für einen solchen Job ein spezielles Werkzeug : app-admin/perl-cleaner.
Rozcietrzewiacz
Ich habe es versucht, perl-cleaner --allaber es wurde nicht neu erstellt, vimwas dagegen verknüpft ist libperl.so.
AlexD
1
Wenn vim danach immer noch kaputt ist, sollten Sie einen Fehlerbericht einreichen.
Rozcietrzewiacz
Aber stellen Sie sicher, dass es wirklich so ist - vimhängt perl nur davon ab, ob es mit perlUseflag gebaut wurde! (Das ist auch ein Grund, warum Mats Methode viel zu viele Umbauten erzwingen könnte.)
rozcietrzewiacz