![了解从源代码构建后创建/安装的文件](https://linux22.com/image/613319/%E4%BA%86%E8%A7%A3%E4%BB%8E%E6%BA%90%E4%BB%A3%E7%A0%81%E6%9E%84%E5%BB%BA%E5%90%8E%E5%88%9B%E5%BB%BA%2F%E5%AE%89%E8%A3%85%E7%9A%84%E6%96%87%E4%BB%B6.png)
我有一项任务要完成,其中涉及使用从源代码构建一系列库configure; make; make install
。生成的库和杂项文件将放入与构建环境兼容的嵌入式系统上。
我的问题是我如何知道哪些文件已安装以及安装在哪里,以便我可以获取它们并将它们移动到嵌入式环境中?
是否通过运行来创建日志make install
?或者我只是将输出发送make install
到文件?
如能得到建议、提示和技巧,我们将不胜感激。
答案1
您可以使用它make -n install
来查看 make install 会做什么。请注意,有时它运行的命令之一是make
子目录中的另一个命令;make -n
不是递归的。
如果软件使用标准 gnu autoconf 配置脚本,您应该能够
./configure --prefix=/my/directory/for/embedded/system [...]
然后所有内容都会安装在该前缀下。
您可以尝试将其复制到嵌入式系统上的“标准”位置,但软件可能无法正常工作。
如果没有其他事情,您可以使用它来收集软件安装内容的清单。
另一个技巧 - 尝试修改 Makefile 以重新定义安装文件的命令(通常是“install”或“install.sh”)。将其替换为您自己的版本,并将其操作写入日志文件。
如果你想要一个更轻量级的解决方案来帮助管理这个问题(与 RPM 或 dpkg 相比),请查看GNU 斯托。
答案2
这是使用打包系统(例如 RPM(Red Hat)或 deb(Debian))的首要原因。
对于嵌入式Linux系统,通常的包管理系统是奥普克,ipkg 的后继者,松散地基于 deb 格式,并且通常可以轻松地从 Debian 包构建说明中进行改编。