APTでパッケージのアンインストールをブロックする


8

つまり、次のようにパッケージを設定できるようにしたいと思いますabc

  1. apt-get remove abc 失敗するはずです。
  2. apt-get purge abc 失敗するはずです。
  3. apt-get upgrade abc うまくいくはずです。

パッケージの依存関係が変更されたためabcにアンインストールする必要がある場合は、dist-upgrade何かを強制されてから、dist-upgradeもう一度やり直します。


私はに依存して基本的なメタパッケージを作成しabc、それはとにかく削除されました...私はあなたが再コンパイルする必要があると思うabcの設定をEssential: yesし、Priority: requireddebian/control
テレサ電子ジュニア

@TeresaeJunior Strangeにdef依存する必須のパッケージabcが機能するはずです。たdef削除?あなたが作るならそれは役に立ちますdef Priority: requiredか?
Gilles「SO-悪をやめる」

@Gillesまさに、私は両方を設定Essential: yesしてPriority: required、それは警告なしで削除されました。見たい場合は、この小さなスクリプトを作成してパッケージを作成しました。paste.org
Teresa e Junior

私はそれEssential: yesが無視されたのを見るので、equivsそれでは十分ではありません...多分パッケージがで作成されているならdebuild、私は試してみます。
Teresa e Junior

回答:


5

削除を防止するためにパッケージを「固定」するものではなく、アップグレードを許可します。

あなたはスパイクをパッケージにハンマーで打つことができ、削除、パージ、アップグレード、なめるなど何もできません...

しかし、ほとんどの場合よりも少し複雑です。

たとえば、Firefoxを固定したいとします(もちろん、パッケージの適切なフルネームを使用します)。

echo firefox hold | dpkg --set-selections

その後、「firefox」は不滅になります。 ただし、この状態でもアップグレードできません。

保留状態を解除するのは少し簡単ですが、一種の抜本的なジェスチャーです。

dpkg --clear-selections

すべてから保留ステータスを削除します!したがって、いくつかのパッケージを保持したい場合は、後で再適用するためにリストを保持することをお勧めします

aptitudesynapticsを使用すると、パッケージを保持/保持解除するメニューオプションがあり、バックグラウンドですべての簿記を処理できるため、実際にはとても快適で簡単に実行できます。私はそれらのうちの1つ(または遭遇する可能性のある無数の他のパッケージマネージャーのいずれか)を使用することをお勧めします

Aptitudeでは、コマンドラインの使用も可能です。

aptitude hold <package>
aptitude unhold <package>

ただし、アップグレードする場合は、「保留を解除」する必要があります。AptitudeのGUI側を使用する場合は、保持されているものがアップグレード可能かどうかを通知する必要があります


1
apt-get保持されたパッケージを喜んでアンインストールします。
12
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.