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

gentoo portage upgrade

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

例えば、現在、broken media-sound/teamspeak-server-bin-3.0.5-r1 が portage ツリーの中で安定版としてマークされていますが、このパッケージはリストの中で最初のものなので、全体のアップグレードを壊しています。もちろん、package.mask ファイルを使ってこのバージョンを単純にマスクすることもできますが、環境変数やコマンドラインスイッチを使って、今だけスキップするようにしたいと思っています

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

  31  ThiefMaster  2012-05-17


ベストアンサー

--excludeオプションがこれをやっているようです

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

だから、これが私のために仕事をしてくれました

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

41  ThiefMaster  2012-05-17


マスクしたくない場合は --keep-going オプションを使ってください。これは、失敗したパッケージをリストに入れずに、 emerge のリストをリセットして続行させます

12  Keith  2012-05-17


ThiefMasterの回答が正解だが、Keithの回答を改善するもう一つの選択肢があると思う。すなわち、彼の答えでは、 emerge が試され、時間がかかるかもしれません。問題が発生したばかりで最初のパッケージに問題があることがわかっている場合は、--resume--skipfirstを使うことができます

--resume(-r)

エラーにより中断された直近のマージリストを再開します。これは、再開しようとしている元のコマンドで与えられた引数とオプションを再利用します。アトムやセットを --resume の引数として与えるとエラーになります。この操作は失敗した場合のみエラーを返すことに注意してください。portage が行うべきことが何もない場合、 portage はメッセージと成功条件で終了します。レジュームリストは、それが完全に完了するか、中止された別のマージリストがそれに取って代わるまで持続します。レジューム履歴には、2つのマージリストを保存することができます。1つのレジュームリストが完了した後、古いリストを再開するために再度 --resume を呼び出すことができます。レジュームリストは /var/cache/edb/mtimedb に格納され、emaint --fix cleanresume を実行することで明示的に破棄することができます (emaint(1) を参照してください)

--skipfirst

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

3  equaeghe  2016-05-25


タイトルとURLをコピーしました