哪些文件没有`让install`副本,以及在哪里?(What files did `make ins

2019-07-20 12:12发布

有没有一种方式来获得的文件名/路径,一个列表make install复制到文件系统? 有些软件包中包含有一个清单文件,但不是说我一起工作的人。

Answer 1:

最万无一失的方法是使用的chroot:有“make install的” chroot监牢内运行; 计算您在安装之前所拥有的文件的列表,并比较,为文件的安装后的名单。

许多设备将支持无论是--prefix配置选项,和/或DESTDIR环境变量。 (如果它试图如果你运行安装为一个相当非特权用户写入的位置之外,这些信任,安装会失败),您可以使用那些chroot环境的打火机,等待版本。

另一种方法是更换安装程序。 许多软件包支持一个安装环境变量,那么,是安装程序使用; 有安装周围的跟踪版本。



Answer 2:

我只是调查这个自己在编译QEMU的定制版本。 我用下面的方法来找出什么是安装在哪里(以及使用它作为一个.deb文件的基础):

mkdir /tmp/installer
./configure --target-list=i386-softmmu
make
sudo make install DESTDIR=/tmp/installer
cd /tmp/installer
tree .

树是一种实用工具,递归显示在视觉上吸引人的方式目录的内容- sudo apt-get install tree为Debian / Ubuntu用户

希望可以帮助别人......我花了一点闲逛到螺母出来的,但我发现它可视化发生了什么事情的相当有用的方法。



Answer 3:

它不同于为您运行“制作安装”每一个项目。 其中安装有文件由在Makefile安装目标正在使用的控制。 最好的办法是打开Makefile文件,然后搜索“安装:” - 从那里你可以看到哪些文件会被复制出来到您的系统。



Answer 4:

make uninstall可能会显示文件,因为它消除他们,如果的编译说明笔者提供的信息,以允许卸载(它已经一段时间,因为我做了一个,所以我不能肯定地说)。

make -n install将完成安装过程的“干RU N”,它可能是合理的提取及其结果的信息。



Answer 5:

如果安装您正在使用不支持DESTDIR或--prefix(或同等)的方案,我发现有可能找出新的文件内容如下:

  1. 开始与作为清洁系统尽可能(新鲜VM图像是优选的)
  2. 编译软件,等待几分钟。
  3. 安装软件包。
  4. 发现在过去的5分钟内修改过的文件: sudo find / -mmin -5 -type f (find命令对查询基于文件的修改/创建时间一吨的参数,但这个工作很适合我,你只需要让你拿起安装程序,但没有别的)创建的文件缩小时间跨度。


文章来源: What files did `make install` copy, and where?