Sie können Testpakete auf einem gentoo stable
System auswählen, indem Sie der Schlüsselwortliste eine Zeile mit der folgenden Syntax hinzufügen:
cat /etc/portage/package.keywords
=dev-python/ipython-0.13.2 ~amd64
# and many lines later
=dev-python/ipython-0.14.1 ~amd64
# and many lines later
>=dev-python/ipython-0.13.4 ~amd64
Diese Datei wächst mit der Zeit und früher oder später kann man sich nicht erinnern, welche Zeilen veraltet sind.
Wie kann ich die Liste von Zeit zu Zeit mit einem Skript aufräumen?
Eine Zeile sollte gelöscht werden,
- wenn die Testversion bereits stabilisiert ist
- > = wurde für dasselbe Paket verwendet
- = wurde für dasselbe Paket mit kleinerer Versionsnummer verwendet
package-management
configuration
gentoo
disk-cleanup
maintenance
Jonas Stein
quelle
quelle
Antworten:
Für diese Aufgabe gibt es jetzt ein offizielles Paket namens app-portage / portpeek .
Es kann
-f
(Fix) als Parameter hinzugefügt wird.quelle
Ich habe ein kleines Python-Skript geschrieben, das sich um dieses Problem kümmert. Die Logik betrachtet jede Zeile in der Datei
package.accept_keywords
und wirkt nur auf Zeilen, die mit=
oder beginnen<=
. Diese Zeilen haben eine maximal gebundene Version, sodass wir prüfen können, ob sie nicht mehr benötigt werden. Zeilen ohne Qualifier oder a>=
bleiben unverändert, da wir nicht wissen können, ob sie veraltet sind.Die Zeilen, die uns wichtig sind, werden dann analysiert und die installierte Version des Pakets wird überprüft. Wenn die installierte Version neuer als die Version mit Schlüsselwörtern ist oder überhaupt nicht mehr installiert wird, gilt das Schlüsselwort als veraltet. Wenn das installierte Paket dieselbe Version wie die Version mit Schlüsselwörtern hat, wird das installierte Paket überprüft, um festzustellen, ob es noch mit Schlüsselwörtern versehen ist. Wenn es stabilisiert wurde, ist die Linie veraltet, andernfalls bleibt sie erhalten.
Dadurch wird die neue Schlüsselwortdatei standardmäßig gedruckt. Hinweis :
/etc/portage/package.accept_keywords
Leiten Sie die Ausgabe nicht zurück , da sonst die Datei überlastet wird und alles verloren geht.Dies trägt wesentlich zur Bereinigung Ihrer Keyword-Datei und Ihrer anderen Probleme bei. Wenn Sie die Datei sortieren und dann auf mehrere Zeilen für dasselbe Paket untersuchen, können Sie die meisten verbleibenden Probleme lösen.
quelle
Sie wissen, dass Sie das Paket konvertieren können. * Dateien in Verzeichnissen, richtig?
Dann können Sie Ihre Atome in mehreren Dateien organisieren, z. B. in meinem System habe ich Folgendes (nun, nicht wirklich, ich bin jetzt nicht an meinem Laptop. Aber Sie haben die Idee):
etc.
Ich fand das sehr nützlich, um die Dateien aktualisieren zu können.
quelle
Hinzufügen zu Ikraavs Antwort:
eix -tT
Entfernen Sie nach der Verwendung die Vergleichsoperatoren und die Versionsnummer des Pakets. Ihre Datei kann auch wie folgt geschrieben werden:Dies garantiert, dass Sie immer die Testversionen von
dev-python/ipython
und erhaltenpackage-cat/package
quelle
~amd64
in meiner Frage könnte irreführend sein. Die Versionsnummern sollten unberührt bleiben. Ich möchte nicht immer die neueste Version bekommen, sondern redundante Leitungen finden.Hier ist ein kleines Skript, das Einträge aus /etc/portage/package.* Dateien filtert, die nicht mehr installiert sind. Außerdem werden alle Kommentarzeilen direkt über dem entfernten Eintrag entfernt. (zB wie durch Autounmaske erzeugt). Wenn Kommentare durch eine Leerzeile getrennt sind, werden nur die unteren Kommentare entfernt. Das Skript entfernt keine doppelten Einträge.
Bitte beachten Sie, dass Portage- Utils installiert sein müssen und der postsync-Hook /etc/portage/postsync.d/q-reinitialize aktiviert sein muss, damit dieses Skript funktioniert.
quelle
Ab sofort bietet das
app-portage/eix
Paket ein praktisches Tool namenseix-test-obsolete
. Eine kurze Beschreibung voneix-test-obsolete -h
:Es gibt einen ziemlich guten Überblick über alle redundanten Einträge in
/etc/portage/package.*
Dateien. Das einzige, was mir persönlich fehlt, ist eine Information über die genaue Datei und Zeile, die die redundante Demaskierung / Verwendung / Akzeptieren / Was auch immer definiert. Allerdingsgrep -nr
hilft in diesem Fall.quelle
Beginnen Sie mit
eix -tT
. Installieren Sieapp-portage/eix
, um das zu bekommen.quelle