Pomiń konkretną aktualizację w emerge -auvD world

30

Czy istnieje prosty sposób pominięcia określonej aktualizacji emerge -auvD world?

Na przykład obecnie w drzewie portage znajduje się zepsuty media-sound/teamspeak-server-bin-3.0.5-r1 oznaczony jako stabilny, co psuje całą aktualizację, ponieważ ten pakiet jest pierwszym na liście. Oczywiście mógłbym po prostu zamaskować tę wersję za pomocą package.maskpliku, ale wolałbym zmienną środowiskową lub przełącznik wiersza poleceń, aby pominąć ją tylko teraz - prawdopodobnie zostanie ona wkrótce naprawiona.

Zauważ, że nie chcę używać emerge -auvD1 list of working packages(tzn. Aktualizuję tylko inne pakiety, podając wszystkie ich nazwy).

ThiefMaster
źródło

Odpowiedzi:

38

Wygląda na to, że --excludeopcja:

--exclude ATOMS
Rozdzielona spacjami lista nazw pakietów lub atomów gniazd. Emerge nie zainstaluje żadnego pakietu ebuild lub pakietu binarnego, który pasuje do dowolnego z podanych atomów pakietu.

Więc to zrobiło dla mnie zadanie:

emerge -auvD --exclude=media-sound/teamspeak-server-bin world
ThiefMaster
źródło
Nie udało mi się znaleźć przykładu osoby wykluczającej wiele pakietów w jednej instrukcji, więc w celach informacyjnych: każda paczka wymaga --excludeznacznika afaik. emerge --deep --update @world -av --exclude=chromium --exclude=firefox.
NuclearPeon,
12

Jeśli nie chcesz go maskować, możesz skorzystać z tej --keep-goingopcji. To sprawia, że ​​emerge resetuje swoją listę i kontynuuje pracę bez uszkodzonego pakietu na liście.

Keith
źródło
3

Odpowiedź ThiefMastera to właściwa droga, ale istnieje inna opcja, która, jak sądzę, poprawia się po odpowiedzi Keitha . Mianowicie, z jego odpowiedzią pojawi się wypróbowanie i może zająć trochę czasu. Jeśli wiesz, że pierwszy pakiet jest problematyczny, ponieważ właśnie napotkałeś problem, możesz użyć --resumei --skipfirst:

--resume(-r)

Wznawia najnowszą listę scalania, która została przerwana z powodu błędu. Powoduje to ponowne użycie argumentów i opcji podanych w oryginalnym poleceniu, które jest wznawiane, a użytkownik może również podać dodatkowe opcje podczas wywoływania --resume. Błędem jest podawanie atomów lub zestawów jako argumentów --resume, ponieważ zamiast nich używane są argumenty z wznowionej komendy. Pamiętaj, że ta operacja zwróci błąd tylko w przypadku niepowodzenia. Jeśli portage nie ma nic do zrobienia, portage zakończy działanie z komunikatem i warunkiem powodzenia. Lista wznawiania będzie utrzymywana do momentu jej ukończenia w całości lub do czasu zastąpienia jej przez inną przerwaną listę scalania. Historia wznowienia może przechowywać dwie listy scalania. Po zakończeniu jednej listy wznowienia możliwe jest wywołanie--resumejeszcze raz, aby wznowić starszą listę. Listy wznowienia są przechowywane /var/cache/edb/mtimedbi mogą zostać jawnie odrzucone przez uruchomienie emaint --fix cleanresume(patrz emaint (1)).

--skipfirst

Ta opcja jest ważna tylko wtedy, gdy jest używana z --resume. Usuwa pierwszy pakiet z listy CV. Zależności są ponownie obliczane dla pozostałych pakietów, a te, które mają niezaspokojone zależności lub są maskowane, zostaną automatycznie usunięte. Zobacz także powiązaną --keep-goingopcję.

equaeghe
źródło