Można wybrać pakiety testowe w gentoo stable
systemie, dodając do listy słów kluczowych wiersz o następującej składni:
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
Z czasem plik ten wzrośnie i prędzej czy później nie można sobie przypomnieć, które linie są przestarzałe.
Jak od czasu do czasu mogę uporządkować listę za pomocą skryptu?
Linia powinna zostać usunięta,
- jeśli wersja testowa jest już ustabilizowana
- > = użyto dla tego samego pakietu
- = użyto dla tego samego pakietu o mniejszym numerze wersji
package-management
configuration
gentoo
disk-cleanup
maintenance
Jonas Stein
źródło
źródło
Odpowiedzi:
Istnieje teraz oficjalny pakiet dla tego zadania o nazwie app-portage / portpeek .
To może
-f
(parametr) zostanie dodany jako parametr.źródło
Napisałem mały skrypt Pythona, który zajmuje się tym problemem. Logika sprawdza każdą linię w pliku
package.accept_keywords
i działa tylko na linie rozpoczynające się od=
lub<=
. Linie te mają wersję z maksymalnym powiązaniem, dzięki czemu możemy sprawdzić, czy są już potrzebne. Linie bez kwalifikatora lub a>=
są bez zmian, ponieważ nie wiemy, czy są przestarzałe.Linie, na których nam zależy, są następnie analizowane i sprawdzana jest zainstalowana wersja pakietu. Jeśli zainstalowana wersja jest nowsza niż wersja ze słowami kluczowymi lub w ogóle nie jest już zainstalowana, słowo kluczowe jest uważane za przestarzałe. Jeśli zainstalowany pakiet jest tej samej wersji, co wersja ze słowami kluczowymi, wówczas zainstalowany pakiet jest sprawdzany, aby sprawdzić, czy nadal zawiera słowa kluczowe. Jeśli został ustabilizowany, linia jest przestarzała, w przeciwnym razie zostaje zachowana.
Spowoduje to wydrukowanie nowego pliku słów kluczowych na standardowe wyjście. Uwaga : nie przekierowuj danych wyjściowych z powrotem do
/etc/portage/package.accept_keywords
pliku, ponieważ spowoduje to zatkanie pliku i utratę wszystkiego.Pomoże to w oczyszczeniu pliku słów kluczowych, a w przypadku innych problemów sortowanie pliku, a następnie sprawdzenie go pod kątem wielu wierszy dla tego samego pakietu pomoże rozwiązać większość z pozostałych.
źródło
Wiesz, że możesz przekonwertować pliki pakietu. * W katalogach, prawda?
Następnie możesz uporządkować swoje atomy w kilku plikach, np. W moim systemie otrzymałem następujące informacje (cóż, nie bardzo, nie mam teraz laptopa. Ale masz pomysł):
itp.
Uważam, że to bardzo przydatne, aby pomóc mi zaktualizować pliki.
źródło
Dodając do odpowiedzi Ikraava:
Po użyciu
eix -tT
usuń operatory porównania i numer wersji pakietu. Twój plik można również zapisać jako:To zagwarantuje, że zawsze otrzymasz wersje testowe
dev-python/ipython
ipackage-cat/package
źródło
~amd64
na moje pytanie może być mylące. Numery wersji powinny pozostać nietknięte. Nie chcę zawsze otrzymywać najnowszej wersji, ale znajduję nadmiarowe linie.Oto mały skrypt, który filtruje wpisy z plików /etc/portage/package.*, które nie są już instalowane. Dodatkowo usuwa wszystkie wiersze komentarza bezpośrednio nad usuniętym wpisem. (np. wygenerowane przez autounmask). Jeśli komentarze są oddzielone pustą linią, usuwa tylko dolne komentarze. Skrypt nie usuwa zduplikowanych wpisów.
Pamiętaj, że portage-utils musi zostać zainstalowany, a hak Postync /etc/portage/postsync.d/q-reinitialize musi zostać aktywowany , aby skrypt działał.
źródło
Na razie
app-portage/eix
pakiet oferuje przydatne narzędzie o nazwieeix-test-obsolete
. Krótki opis zeix-test-obsolete -h
:Daje całkiem dobry przegląd wszystkich nadmiarowych wpisów w
/etc/portage/package.*
plikach. Jedyne, czego osobiście mi brakuje, to informacje o dokładnym pliku i linii definiującej zbędne zdemaskowanie / use / accept / cokolwiek. Jednakgrep -nr
pomaga w takim przypadku.źródło
Zacznij od
eix -tT
. Zainstaluj,app-portage/eix
aby to uzyskać.źródło