Gibt es auf Gentoo eine Möglichkeit, eine Liste der installierten Pakete zu finden, von denen keine anderen Pakete abhängig sind?

7

Gibt es unter Gentoo eine Möglichkeit, eine Liste der installierten Pakete zu finden, von denen keine anderen Pakete abhängig sind (sogenannte Blattpakete)? Oder gibt es ein Analogon zum pkg-orphanFreeBSD-Dienstprogramm?

AlexD
quelle

Antworten:

6

Das emerge --pretend --depcleanmacht es. Es sucht nach Paketen, die sind:

  • nicht abhängig von anderen Ebuilds, und
  • weder in worldnoch systemsetzt

Es ist eine gute Idee, emaint --check worldvor einem Depclean zu laufen , um potenzielle Probleme mit Ihrer Weltdatei zu finden (und später zu beheben).

Weitere nützliche Tools: Gentoo-Wartung

Matte
quelle
In meinem Fall sind Pakete, an denen ich interessiert bin (diese Perl-Module aus meiner anderen Frage), alle in der Weltdatei.
AlexD
2
Wenn Sie Dinge in die Welt setzen, bedeutet dies "Ich bin davon abhängig". Dh du bist die Abhängigkeit. Entfernen Sie die Pakete, die Sie nicht explizit benötigen, aus Ihrer Weltdatei. Wenn Sie Dinge auftauchen, die Sie nicht explizit benötigen, verwenden Sie die --oneshotOption.
Mat
Hinzufügen zum vorherigen Kommentar von Mat: Eine geeignete Befehlszeilenmethode zum Entfernen solcher Pakete worldist emerge --deselect package_atom, wo package_atomeinfach der Name des Pakets angegeben werden kann (weitere Informationen finden Sie unter man portage).
Rozcietrzewiacz
Diese Pakete werden nach Puppet-Rezept installiert, sodass für die Verwendung --oneshotPuppet-Quellen geändert werden müssen. Ich benötige diese Pakete ohnehin in der World-Datei in der Produktion, damit sie nicht regelmäßig entfernt werden depclean(diese Pakete sind Abhängigkeiten von großen Webanwendungen, die nicht ordnungsgemäß verpackt sind noch). Aber im Moment muss ich diese Pakete aus dem Testsystem entfernen und das Entfernen dieser Pakete von Hand aus der Weltdatei (oder aus dem System) ist genau die Aufgabe, die ich zu vermeiden versuche.
AlexD
Sie können es nicht in beide Richtungen haben - teilen Sie dem System mit, dass sie benötigt werden, und fordern Sie es dann auf, dass sie automatisch bereinigt werden. Sie müssen verfolgen, was Sie tun. Sets helfen ein bisschen, aber wie Sie in einem anderen Kommentar gesagt haben, ist es nicht kugelsicher. Sie können auch einfach alle aufkommenden Aktionen (mit einem einfachen Wrapper) aufzeichnen und damit Ihre Änderungen zurückverfolgen.
Mat
2

Wenn Sie sehen möchten, welche Pakete im @worldSet nicht auch Abhängigkeiten von anderen installierten Paketen sind, können Sie ausführen emerge --pretend --depclean @world(oder emerge -pc @world). Beachten Sie auch, dass Portage das Paket nur entfernt , wenn Sie versuchen, ein Paket mit emerge --depclean atom(anstelle von emerge --unmerge atom) zu entfernen, wenn nichts anderes davon abhängt.

Jonathan Callen
quelle
1
Dies funktioniert nicht mehr (mehr?) emerge --pretend --depclean @worldRückkehremerge: the given set 'world' does not support unmerge operations
Jonas Stein