依存パッケージによってパッケージのどの関数が使用されているかを判断する簡単な方法はありますか?

依存パッケージによってパッケージのどの関数が使用されているかを判断する簡単な方法はありますか?

私は、必要な機能を提供するために必要な最小限のファイル、パッケージなどにシステムを簡素化する作業を行っています。

保持しておきたいパッケージの多くが、依存関係であるという事実を除けば、私が構築しているディストリビューションにはまったく不要または望ましくないパッケージに依存していることがわかりました。

各パッケージのソースを取得し、不要な依存関係から関数のリストをコンパイルし、保持したいパッケージのソースをスキャンしてそれらの関数が呼び出される場所(呼び出される場合)を探し、ライブラリをその関数とおそらくその API だけに、または保持したいパッケージにその機能を提供するために必要なその他のものに削除できることはわかっています。

私はこれをやりました、一度それが可能かどうか確認してみました。可能です。しかし、時間がかかり、面倒で、自動化の対象にはなりません。

私が見つけられなかったオプション、または私の(確かに素晴らしいとは言えない)研究能力では見つけられなかったdpkg、希望する効果を達成するためのプログラムが存在するのでしょうか?

答え1

deborphanこの問題を解決しようとします。

aptitudeバックグラウンドで実行され、インストールされなくなったパッケージの依存関係を満たすためだけに取り込まれたパッケージがどれであるかを追跡します。

debfoster似たような機能を宣伝していますが、実際に使用した経験はありません。

これらはすべてパッケージ レベルで動作し、dpkgのデータベースで宣言された依存関係を使用します。 質問では、個々のパッケージを整理して、不要なコードやその他のリソースを削除したいとおっしゃっているようです。 これは、はるかに複雑で要求の厳しい作業です。この問題を解決するために、単純な方法があるとは思えません。

関連情報