バグ#693758 のため、apt-get upgrade
およびUpdate Managerが「libgtk2.0-0」パッケージを更新しないようにしたいと思います。
どうすればこれを達成できますか?
パッケージを保留するには、dpkg、apt、aptitude、またはdselectの4つの方法があります。
パッケージを保留にします。
echo "<package-name> hold" | Sudo dpkg --set-selections
保留を解除します。
echo "<package-name> install" | Sudo dpkg --set-selections
パッケージのステータスを表示します。
dpkg --get-selections
単一のパッケージのステータスを表示します。
dpkg --get-selections | grep "<package-name>"
パッケージを保持する:
Sudo apt-mark hold <package-name>
保留を解除します。
Sudo apt-mark unhold <package-name>
保留中のすべてのパッケージを表示:
Sudo apt-mark showhold
Dselectを使用して、[S] elect画面に入り、現在の状態で保持したいパッケージを見つけて押します = または H。 [S] elect画面を終了すると、変更はすぐに有効になります。
以下のアプローチは、aptitudeまたはsynaptic内でパッケージをロック/保持してもapt-get/aptに影響しないという点で制限されています。
パッケージを保持する:
Sudo aptitude hold <package-name>
保留を解除します。
Sudo aptitude unhold <package-name>
Synaptic Package Manager(System> Administration> Synaptic Package Manager)に移動します。
検索ボタンをクリックして、パッケージ名を入力します。
パッケージが見つかったら、それを選択してPackageメニューに移動し、Lock Versionを選択します。
そのパッケージは更新マネージャーに表示されなくなり、更新されなくなります。
パッケージ「foo」を保留にするには:
echo "foo hold" | dpkg --set-selections
あなたの場合、ワインを保留にします。
Sudo -i
echo "wine hold" | dpkg --set-selections
保留を解除するには:
Sudo -i
echo "wine install" | dpkg --set-selections
私は同じものを探していましたが、多くの調査の結果、次の構文を使用すると、特定のバージョンを禁止して次の更新を許可できることがわかりました。
パッケージ:compiz-plugins-main Pin:バージョン1:0.9.7.0〜bzr19-0ubuntu10.1 Pin-Priority:-1
これは/ etc/apt/preferencesファイルに入ります。
Sudo apt-get install synaptic
を使用してsynaptic
をインストールします。
gksudo synaptic
を使用して実行し、検索ボックスでロックするパッケージを見つけます。例:gedit
パッケージメニューからロックバージョンを選択します。
それだけです。ロック時に現在インストールされているバージョンは、アップグレード中でもインストールされたままになります。
パッケージがインストールされないようにすることは「パッケージの保持」と呼ばれ、非常に簡単です。
エコー パッケージ名 ホールド| dpkg --set-selections
...ここで* package_name *は、インストールを禁止するパッケージの名前です。
注:上記のコマンドはルート権限を想定しています。つまり、実行する前におそらくSudo su
と入力する必要があります。
しばらくするとapt-get
がapt
に置き換えられるため、たとえば、Firefoxが56を超えるバージョンに更新されないようにしたいのです。たとえば、 「タブグループ」 は、新しいFirefox 57では機能しなくなりました(「WebExtensionsアップデート」を参照)。
1つのコマンドで複数のパッケージを保持し、ワイルドカードを使用することができます。
Sudo apt-mark hold firefox firefox-locale-*
後で保留を解除する必要がある場合は、次のコマンドになります。
Sudo apt-mark unhold firefox firefox-locale-*
特定のパッケージのバージョンをフリーズできるシナプスです。これによりapt-getが修正されるかどうかは100%わかりませんが、アップデートマネージャーは間違いなく停止します。
パッケージをフリーズするには、シナプスでパッケージを選択し、パッケージメニューを開いてフリーズバージョンを選択します。
お役に立てれば
編集:これ 質問16668 同様の状況を扱います
パッケージを特定のバージョンに「保持」および「固定」することについて知りたいことすべて: https://help.ubuntu.com/community/PinningHowto
次のように、aptitudeで「特定のオーバーライド」を使用できます。
aptitude reinstall ~i Oracle-Java8-jre:
これは、システム内のすべてのパッケージを再インストールし、Oracle-Java8-jreを再インストールしないための(将来の再インストール用に保存されない)1回限りの使用です。
特定の保持オーバーライドを使用すると、パッケージは一時的に保持状態になり、aptitudeはインストールを試みません。
システムが何らかの方法で侵害されたと思われる場合、非常に良いことです。
Synapticがインストールされている場合、パッケージを選択し、[パッケージ]-> [バージョンのロック]メニューを使用して更新されないようにすることができます。
Synapticは、Sudo apt-get install synapticを使用してインストールできます。個人的には、ソフトウェアセンターよりも便利だと思います...それから、私はかなり古い学校です。 :)
時々all現在インストールされているパッケージを控えたいかもしれません。方法は次のとおりです。
最初に現在の状態を保存して、元に戻すことができます:
dpkg --get-selections > current_selections.txt
次に、すべてのパッケージを保留するには:
dpkg --get-selections | sed -r "s/\tinstall/hold/" |dpkg --set-selections
最後に、以前の状態に戻したい場合:
dpkg --set-selections < current_selections.txt
この使用例の1つは、VMまたはAmazon AMIスナップショットを作成してQAから本番環境に移行する場合です。
Ubuntu 16.04に関連する@ soger のコメントに詳細を追加します。
Ubuntu 16.04には、デフォルトでは既存の/ etc/apt/preferencesファイルがありません。現在ファイルがない場合は、新しいファイルを作成し、上記の@sogerで説明されているようにスタンザを追加して、指定されたパッケージとその依存関係を更新から除外します。
その後、apt update
を実行すると、GTGになります。 :0)
たとえば、IntelビデオカードとNVidiaカードが埋め込まれたUbuntu 16.04.5 LTSサーバーがあります。 NVidiaカードのみが使用されます。サーバーはCUDAドライバーも使用します。 apt
が主張し続ける問題がありました
va-driver-all
(Intelドライバー)は更新が必要でしたが、インストールするバージョンを判別できませんでした。これは私を夢中にさせていたので、とにかくIntelドライバーは必要ありませんでした。このテキストを設定ファイルに入力し、aptをフラッシュして問題を解決しました。
Package: va-driver-all
Pin: release *
Pin-Priority: -1