我有一项任务要完成,其中涉及使用从源代码构建一系列库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 包构建说明中进行改编。