我正在使用非常有限的嵌入式硬件,我无法承担安装许多软件包的费用;但是,我需要Python3.10,它是我从源代码构建的(我的apt仅提供Python3.7)。
在此过程中,我安装了build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev
和这些软件包的数十个附加依赖项。因此,我的操作系统太大,无法加载到嵌入式硬件上。
Python3.10安装完成后,apt-get purge
上面的包及其依赖还可以吗?这样做之后,我测试了非常基本的 Python 程序,一切看起来都很好,但这会在以后带来麻烦吗?
您可以将构建依赖项细分为几组:
构建完成后,您可以删除前两个。第三个列表通常是共享库,但其中也可能有支持文件。这是一个更难确定的列表。
您也许可以删除开发库,然后选择 autoremove 要删除的内容,以确定其中有多少是关键共享库。
或者,您可以选择构建的目标并在可执行文件和库上运行 ldd,并找出找到的共享库所需的包。请注意,并非所有这些都会在上面建议的自动删除列表中找到!此外,这不会找到在运行时检测到并动态加载的库,而不是在编译时实际链接的库。
如果没有仔细分析,挑选出包含所需支持文件的软件包可能会更加困难。我不想删除它们,只是为了发现没有它们就崩溃的东西,假设您在测试而不是在生产中设法到达该代码路径!
简而言之,没有简单明了的答案。这需要仔细的分析、对所有应用程序的充分了解,也许还需要一些尝试和错误。