確定依賴套件使用包中的哪些函數的簡單方法?

確定依賴套件使用包中的哪些函數的簡單方法?

我正在努力將系統剝離到提供我想要的功能所需的最少量的文件、套件等。

我發現我想要保留的許多包都依賴於完全不必要的包,和/或對於我正在構建的發行版來說不需要的包,除了它們是依賴項這一事實之外。

我知道我可以提取每個包的源代碼,從不需要的依賴項中編譯函數列表,掃描我想要保留的包的源代碼以查找調用這些函數的位置(如果有的話),然後將庫剝離為僅該函數,可能還有 api,或者將該功能交付給我想保留的包所需的任何其他內容。

我現在已經做到了這一點一次看看是否可能。這是。然而,它既耗時又乏味,而且不太適合自動化。

是否有一個我無法找到的選項dpkg或一個存在的程序已經逃脫了我(誠然並不令人驚奇)的研究能力以達到我想要的效果?

答案1

deborphan試圖解決這個問題。

aptitude在幕後為您做這件事,追蹤哪些套件可以被刪除,因為它們被拉入只是為了滿足不再安裝的套件的依賴關係。

debfoster宣傳了一些類似的功能,但我沒有實際經驗。

這些都在套件層級上工作,並使用 的dpkg資料庫中聲明的依賴項。您的問題似乎表明您想要剝離各個軟體包以刪除不需要的程式碼和其他資源。這是一項更複雜、更艱鉅的任務;我不認為有什麼辦法可以解決這個問題。

相關內容