Aptitude - 特定のパッケージの依存関係を除いて、X11 カテゴリ内のすべてのパッケージを削除します

Aptitude - 特定のパッケージの依存関係を除いて、X11 カテゴリ内のすべてのパッケージを削除します

システムから X11 カテゴリのパッケージのほとんどを削除したいと思います。ただし、それらのパッケージの一部は 'beaglebone' パッケージに依存しています。 'beaglebone' が依存するパッケージを除いて、X11 カテゴリのすべてを削除するように aptitude に指示するにはどうすればよいでしょうか。

下記では、壊れるリスクがあるにもかかわらずアンインストールすべきパッケージの 1 つとして「beaglebone」が推奨されていることがわかります。

    適性推奨削除。Beaglebone が含まれます。

削除後もこのパッケージとその依存関係が保持されることを確認するにはどうすればよいですか?

答え1

簡単に答えると、次のようになります。

aptitude remove '~sX11 ! ~Rbeaglebone'

しかし、このような状況では(多くX11 に依存するものが多いため、インタラクティブ リゾルバを使用することをお勧めします。これを行うには、--schedule-only上記にオプションを追加し、aptitude引数なしで再度実行します。また、1 つまたは両方のコマンドに追加する必要がある場合もあります(設定にまだ含まれていない場合)。ただし、自動解決はインターフェイスで を-o Aptitude::Auto-Fix-Broken=false押したときにのみ実行されるため、必要ないと思います。g

ncurses インターフェイスを実行したら、 を押してe最初のソリューションを調べ、追加の削除を確認します。不要なものがある場合は、矢印キーを使用して選択し、 を押してrアクションを拒否します。 を押して.次のソリューションをロードすると、拒否が含まれないソリューションが提供されるはずです。必要に応じて繰り返し、 を押して!ソリューションを受け入れ、通常どおり続行します。

答え2

次のいずれかの方法を使用して、パッケージ「beaglebone」を「除外」し、その依存関係をすべて強制的に残すことができると思います。

$ sudo apt-mark hold <package>

または

$ echo <package> hold | sudo dpkg --set-selections

apt-mark1つ目は、その機能を活用することですhold

   hold
        hold is used to mark a package as held back, which will prevent the 
        package from being automatically installed, upgraded or removed. The 
        command is only a wrapper around dpkg --set-selections and the state 
        is therefore maintained by dpkg(1) and not affected by the --file 
        option.

dpkg2 番目は、パッケージを「保留」としてマークするために使用します。

   --set-selections
        Set package selections using file read from stdin. This file should 
        be in the format 'package state', where state is one of install, 
        hold,  deinstall  or purge. Blank lines and comment lines beginning 
        with '#' are also permitted.

関連情報