Überspringe ein bestimmtes Upgrade in der emerge -auvD-Welt

30

Gibt es eine einfache Möglichkeit, ein bestimmtes Upgrade zu überspringen emerge -auvD world?

Derzeit ist beispielsweise ein Fehler media-sound/teamspeak-server-bin-3.0.5-r1 im Portage-Baum als stabil markiert, der das gesamte Upgrade unterbricht, da dieses Paket das erste in der Liste ist. Natürlich könnte ich diese Version einfach mit der package.maskDatei maskieren , aber ich würde es vorziehen, wenn eine Umgebungsvariable oder eine Befehlszeilenoption sie erst jetzt überspringt - sie wird wahrscheinlich sowieso bald behoben.

Beachten Sie, dass ich nicht verwenden möchte emerge -auvD1 list of working packages(dh nur die anderen Pakete aktualisieren, indem Sie alle ihre Namen angeben).

Diebesmeister
quelle

Antworten:

38

So sieht die --excludeOption aus:

--exclude ATOMS
Eine durch Leerzeichen getrennte Liste von Paketnamen oder Slot-Atomen. Emerge installiert kein Ebuild- oder Binärpaket, das mit einem der angegebenen Paketatome übereinstimmt.

Das hat also für mich funktioniert:

emerge -auvD --exclude=media-sound/teamspeak-server-bin world
Diebesmeister
quelle
Ich konnte kein Beispiel für jemanden finden, der mehrere Pakete in einer Anweisung ausschließt. Als Referenz: Für jedes Paket ist ein --excludeTag afaik erforderlich . emerge --deep --update @world -av --exclude=chromium --exclude=firefox.
NuclearPeon
12

Wenn Sie es nicht maskieren möchten, können Sie die --keep-goingOption verwenden. Das führt dazu, dass emerge seine Liste zurücksetzt und weitermacht, ohne dass das fehlerhafte Paket in der Liste enthalten ist.

Keith
quelle
3

Die Antwort von ThiefMaster ist der richtige Weg, aber es gibt eine andere Option, die meiner Meinung nach die Antwort von Keith verbessert . Mit seiner Antwort wird nämlich das Auftauchen versucht und kann Zeit in Anspruch nehmen. Für den Fall , wissen Sie , dass das erste Paket problematisch ist , weil Sie nur ein Problem festgestellt haben, können Sie verwenden , --resumeund --skipfirst:

--resume(-r)

Setzt die zuletzt aufgrund eines Fehlers abgebrochene Zusammenführungsliste fort. Dies verwendet die Argumente und Optionen, die mit dem ursprünglichen Befehl angegeben wurden, der fortgesetzt wird, und der Benutzer kann beim Aufrufen zusätzliche Optionen bereitstellen --resume. Es ist ein Fehler, Atome oder Mengen als Argumente für bereitzustellen --resume, da stattdessen die Argumente aus dem Befehl resumed verwendet werden. Bitte beachten Sie, dass dieser Vorgang nur bei einem Fehler einen Fehler zurückgibt. Wenn Portage nichts zu tun hat, wird Portage mit einer Meldung und einer Erfolgsbedingung beendet. Eine Wiederaufnahmeliste bleibt bestehen, bis sie vollständig abgeschlossen wurde oder durch eine andere abgebrochene Zusammenführungsliste ersetzt wird. Im Verlauf des Lebenslaufs können zwei Zusammenführungslisten gespeichert werden. Nachdem eine Wiederaufnahmeliste abgeschlossen ist, kann sie aufgerufen werden--resumenoch einmal, um eine ältere Liste fortzusetzen. Die Lebenslauflisten werden in gespeichert /var/cache/edb/mtimedbund können durch Ausführen explizit verworfen werden emaint --fix cleanresume(siehe emaint (1)).

--skipfirst

Diese Option ist nur in Verbindung mit gültig --resume. Das erste Paket in der Lebenslaufliste wird entfernt. Abhängigkeiten werden für verbleibende Pakete neu berechnet und alle, die nicht erfüllte Abhängigkeiten haben oder maskiert sind, werden automatisch gelöscht. Siehe auch die zugehörige --keep-goingOption.

gleich
quelle