LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1232|回复: 7

不想安装,怎么看make安装了那些文件?

[复制链接]
发表于 2010-1-29 11:02:52 | 显示全部楼层 |阅读模式
不想安装,怎么看make安装了那些文件?
发表于 2010-1-29 13:42:54 | 显示全部楼层
用 chroot 把根设置到某个临时目录,如有必要可配合 fakeroot。然后可列出所安装的文件,然后可把临时目录删除。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-29 17:00:52 | 显示全部楼层
嗯,有创意! 是个好办法,不过还是比较麻烦

有没有直观的办法?像 rpm -qpl ***.rpm 这样的
回复 支持 反对

使用道具 举报

发表于 2010-1-29 21:37:25 | 显示全部楼层
如果可能的话,不知道直接分析makefile文件会不会更快些,如果功力深厚的话,也许这是最快的。
回复 支持 反对

使用道具 举报

发表于 2010-2-2 04:10:11 | 显示全部楼层
man make看看吧,有查看安装选项:
  1. -n, --just-print, --dry-run, --recon
  2. Print the commands that would be executed, but do not execute them.
复制代码
回复 支持 反对

使用道具 举报

发表于 2010-2-7 00:20:29 | 显示全部楼层
make的install的选项应该会说要复制哪些文件吧
回复 支持 反对

使用道具 举报

发表于 2010-2-7 03:54:15 | 显示全部楼层
如果源码包的configure文件是用autoconf工具生成的,那么可以在安装的时候用
make DESTDIR=/fakeroot install
代替
sudo make install
(/fakeroot可以换成其它的空目录比如/home/<usrname>/<packagename-version>)
这样软件包就被安装到/fakeroot目录下,你可以到这个目录下查看make install命令会安装哪些文件和安装的位置,如果一个文件出现在/fakeroot/usr/bin目录下,就意味着真实的安装会把这个文件安装到/usr/bin目录下。
据我所知,debian的很多二进制软件包就是通过类似的方法生成的。

更多的信息可参考
http://www.linuxfromscratch.org/ ... /files/fakeroot.txt
回复 支持 反对

使用道具 举报

发表于 2010-2-7 09:26:06 | 显示全部楼层
Post by zwgun;2066798
man make看看吧,有查看安装选项:
  1. -n, --just-print, --dry-run, --recon
  2. Print the commands that would be executed, but do not execute them.
复制代码


这个方法貌似不行。

使用 $(MAKE) 变量可以把 make 进入的命令行参数进行传递。但是很多脚本并没有使用这个变量,因此,下级的 make 都无法得到传入的参数。理论上,你的 make 仅限于最外层的被显示了出来,内层继续调用 make 的时候就都没有 -n 参数了,最后你无法获得所有的命令。

实际上呢,如果在 make -n 的情况下,里面调用了 make -n ,还会执行么?或者只是显示一下?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表