【发布时间】:2009-03-18 04:12:05
【问题描述】:
我试图找出当我通过 make install 运行应用程序安装时更改了哪些文件。我可以查看脚本,但它会调用其他脚本,并且可能会或可能不会触及其他文件等。我该如何以编程方式执行此操作?
【问题讨论】:
标签: linux installation
我试图找出当我通过 make install 运行应用程序安装时更改了哪些文件。我可以查看脚本,但它会调用其他脚本,并且可能会或可能不会触及其他文件等。我该如何以编程方式执行此操作?
【问题讨论】:
标签: linux installation
实现:http://asic-linux.com.mx/~izto/checkinstall/
我想到了几种方法。首先,使用某种 LD_PRELOAD 来跟踪所有打开的文件。第二种方法,比较之前和之后的文件系统。
【讨论】:
如果你的内核支持它,你可以使用 inotify(一个方便的接口是inotify tools)并观察你的主目录,如果包配置了 --prefix=/home/myusername
我注意到 checkinstall(通过 LD_PRELOAD 使用 installwatch)并不总是捕获所有内容,上次我使用它时它没有捕获为假脱机创建的空目录,这导致随后生成的 .deb 中断。
注意,如果要安装到 /,请不要使用 inotify,在这种情况下,您必须使用 installwatch 或只是仔细阅读所有 makefile / install 脚本。
【讨论】: