emerge -auvD worldで特定のアップグレードをスキップする


30

で特定のアップグレードをスキップする簡単な方法はありますemerge -auvD worldか?

たとえば、現在、Portageツリーには、パッケージがリストの最初のパッケージであるため、アップグレード全体を中断する安定としてマークされた破損 media-sound/teamspeak-server-bin-3.0.5-r1があります。もちろん、package.maskファイルを使用してこのバージョンを単純にマスクすることもできますが、環境変数またはコマンドラインスイッチを使用して、今すぐそれをスキップすることをお勧めします。

使用したくないことに注意してくださいemerge -auvD1 list of working packages(つまり、すべての名前を指定して他のパッケージを更新するだけです)。

回答:


38

--excludeオプションがこれを行うように見えます:

--exclude ATOMS
パッケージ名またはスロットアトムのスペース区切りリスト。Emergeは、指定されたパッケージアトムのいずれかに一致するebuildまたはバイナリパッケージをインストールしません。

だから、これは私のために仕事をしました:

emerge -auvD --exclude=media-sound/teamspeak-server-bin world

1つのステートメントで複数のパッケージを除外する人の例を見つけることができなかったので、参考のために、各パッケージには--excludeタグafaik が必要です。emerge --deep --update @world -av --exclude=chromium --exclude=firefox
NuclearPeon

12

マスクしたくない場合は、--keep-goingオプションを使用できます。これにより、リストに失敗したパッケージがなくても、emergeはリストをリセットして続行します。


3

ThiefMasterの答えは正しい方法ですが、別の選択肢があります。これはキースの答えを改善したと思います。つまり、彼の答えでは、emergeが試行され、時間がかかる場合があります。問題が発生したばかりで最初のパッケージに問題があることがわかっている場合は、--resumeand を使用できます--skipfirst

--resume(-r)

エラーのために中止された最新のマージリストを再開します。これにより、再開される元のコマンドで指定された引数とオプションが再利用され、ユーザーはを呼び出すときに追加のオプションを提供することもできます--resume--resume再開されたコマンドの引数が代わりに使用されるため、アトムまたはセットを引数として提供するとエラーになります。この操作は失敗した場合にのみエラーを返すことに注意してください。Portageが実行するものがない場合、Portageはメッセージと成功条件で終了します。再開リストは、完全に完了するか、別の中断されたマージリストに置き換えられるまで保持されます。履歴書履歴には、2つのマージリストを保存できます。1つの再開リストが完了したら、呼び出すことができます--resume古いリストを再開するためにもう一度。履歴書リストはに保存され/var/cache/edb/mtimedb、実行することで明示的に破棄される場合がありますemaint --fix cleanresume(emaint(1)を参照)。

--skipfirst

このオプションは、とともに使用し--resumeた場合にのみ有効です。履歴書リストの最初のパッケージを削除します。残りのパッケージの依存関係は再計算され、依存関係が満たされていないか、マスクされているパッケージは自動的に削除されます。関連--keep-goingオプションも参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.