Aptは、ユーザーがソースからインストールしたソフトウェアに必要なパッケージを削除できますか?

Aptは、ユーザーがソースからインストールしたソフトウェアに必要なパッケージを削除できますか?

簡単リポジトリまたはファイルからインストールされた*.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-NAMEm

バイナリ実行可能ファイルに必要なライブラリパッケージを見つけるには、を実行しますldd /path/to/executable。含まれる各行に対してrunを実行すると、ライブラリを含むパッケージ名が表示されます。スクリプトの場合、スクリプトが使用するインタプリタを表示します。インタプリタがインストールされたままであることを確認してください。スクリプトで使用されているライブラリを見つけるのは難しいかもしれませんが、これを行う普遍的な方法はありません。/usr/lib/SOMETHINGdpkg -S /usr/lib/SOMETHINGhead -n 1 /path/to/script

展開に存在する最新バージョンのパッケージを手動でインストールした場合は、展開パッケージの依存関係を確認し、手動インストールとしてマークします。

関連情報