web-dev-qa-db-ja.com

debパッケージを使用済みとしてマークするため、自動削除は推奨されません

いくつかの具体的なパッケージの依存関係ではないが、ソースからビルドしたaptで管理されていないライブラリ(最新のSDL、Allegro、SFMLなど)に必要な多くの共有ライブラリがシステムにインストールされています。ソースから構築された他のソフトウェア。問題は、これらのライブラリがAPTによって未使用として認識されるため、自動削除の候補になり、削除できる正当な未使用パッケージと混同されることです。

パッケージを使用済みとしてマークして、自動削除が推奨されないようにする方法はありますか?最初に考えたのは、依存関係を保持するためだけに独自のメタパッケージを構築することでした(たとえば、ubuntu-desktopのように)が、その方法はわかりません。

8
Boris B.

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) を参照してください。

9
Lekensteyn

Apt-get installを使用するだけです:

Sudo apt-get install [your-packages]

実際にはインストールされません。フラグを手動でインストールするように設定します。

4
jasmines

独自のメタパッケージを作成するほど複雑なことをする必要はありません。

fooと呼ばれるパッケージが自動削除の対象にならないことを確認したいとします。

ターミナルウィンドウを開きます(Ctrl+Alt+T)および実行:

Sudo apt-get install foo

つまり、パッケージを手動でインストールする同じコマンドは、手動でインストールされたものとしてマークします。依存関係自体が削除されるため。

2
Eliah Kagan