簡単リポジトリまたはファイルからインストールされた*.deb
パッケージ間の依存関係を処理します。しかし、ユーザーが./configure && make && make install
最初にファイルを生成せずにソースからコンパイルしてインストールする.deb
ソフトウェアはどうですか?可能ですか?簡単そのソフトウェアに必要なパッケージを削除できますか?ソースからソフトウェアをインストールすると違いはありますか /opt
?/usr/local
答え1
apt
そして、dpkg
パッケージ管理システムの範囲に属さない他のソフトウェアに必要なローカルにインストールされたソフトウェアを削除することも絶対に可能です。そのようなソフトウェアが存在するかどうかをapt
知る方法はまったくありません。dpkg
これらのソフトウェアがインストールされている場所には違いはありません。ユーザーのホームディレクトリ(この場合、システム管理者でさえその存在を認識できない可能性があります)/opt
にある場合もあれば、どこにいてもかまいません。/usr/local
技術的には、他のソフトウェアに必要なソフトウェアを削除するapt
ことも可能です。dpkg
はいソフトウェアが以前のソフトウェアに依存していることを宣言できない場合は、パッケージ管理システムの一部です。ただし、deb パッケージを生成するプロセスには、パッケージ管理者がこれらの依存関係を宣言することを忘れないようにする自動化が含まれます。
答え2
APTは手動でインストールされたソフトウェアについて何も知りません。ソフトウェアにどのライブラリが必要か、何も知りません。
APTが他のパッケージの依存関係を満たすためにのみパッケージをインストールすると、そのパッケージは自動的にインストールされたとマークされます。自動的にインストールされたパッケージに依存するすべてのパッケージを削除すると、そのパッケージを実行するとそのパッケージが削除されますapt-get autoremove
。 APTの上位レベルのフロントエンドは、通常、他のメンテナンス後にこのサービスを提供します。ローカルにインストールされたソフトウェアに必要なパッケージを削除しない場合は、そのパッケージを手動インストールとしてマークするか、aptitude キーを表示します。apt-mark manual PACKAGE-NAME
m
バイナリ実行可能ファイルに必要なライブラリパッケージを見つけるには、を実行しますldd /path/to/executable
。含まれる各行に対してrunを実行すると、ライブラリを含むパッケージ名が表示されます。スクリプトの場合、スクリプトが使用するインタプリタを表示します。インタプリタがインストールされたままであることを確認してください。スクリプトで使用されているライブラリを見つけるのは難しいかもしれませんが、これを行う普遍的な方法はありません。/usr/lib/SOMETHING
dpkg -S /usr/lib/SOMETHING
head -n 1 /path/to/script
展開に存在する最新バージョンのパッケージを手動でインストールした場合は、展開パッケージの依存関係を確認し、手動インストールとしてマークします。