いくつかの具体的なパッケージの依存関係ではないが、ソースからビルドしたaptで管理されていないライブラリ(最新のSDL、Allegro、SFMLなど)に必要な多くの共有ライブラリがシステムにインストールされています。ソースから構築された他のソフトウェア。問題は、これらのライブラリがAPTによって未使用として認識されるため、自動削除の候補になり、削除できる正当な未使用パッケージと混同されることです。
パッケージを使用済みとしてマークして、自動削除が推奨されないようにする方法はありますか?最初に考えたのは、依存関係を保持するためだけに独自のメタパッケージを構築することでした(たとえば、ubuntu-desktopのように)が、その方法はわかりません。
apt-get install
はパッケージもインストール済みとしてマークしますが、パッケージのアップグレード(アップグレードが利用可能な場合)などの他のことも行います。自動的にインストールされた状態を変更する正しいプログラムは、apt-mark
です。
パッケージを手動でインストール済みとしてマークする(apt-get autoremove
によって削除されないように):
Sudo apt-mark manual package1 package2 ... packageN
パッケージを自動的にインストール済みとしてマークするには(パッケージに依存するパッケージがない場合にapt-get autoremove
によって削除されるように):
Sudo apt-mark auto package1 package2 ... packageN
詳細については、マニュアルページ apt-mark(8) を参照してください。
Apt-get installを使用するだけです:
Sudo apt-get install [your-packages]
実際にはインストールされません。フラグを手動でインストールするように設定します。
独自のメタパッケージを作成するほど複雑なことをする必要はありません。
foo
と呼ばれるパッケージが自動削除の対象にならないことを確認したいとします。
ターミナルウィンドウを開きます(Ctrl+Alt+T)および実行:
Sudo apt-get install foo
つまり、パッケージを手動でインストールする同じコマンドは、手動でインストールされたものとしてマークします。依存関係自体が削除されるため。