我需要从某个供应商(即 nvidia、cisco...)安装一些专有软件包。我有一些二进制安装文件,它在安装过程中将文件复制到我的文件系统(到/usr/share/
,,,...)。但我不知道具体是什么以及在哪里。当我想安装这个应用程序时,没有卸载二进制文件,并且删除应用程序文件可能会出现问题。/etc/
/usr/bin/
Linux 中是否有一些工具可以跟踪文件的复制位置?
我想找到一些不依赖Linux发行版的通用解决方案。我的愿景是类似的track ./install.bin
,输出将是被操纵的文件。
在系统上我没有类似的工具定位。
答案1
最简单的方法:find
.
最简单的方法(最简单的意思,无需安装额外的工具,易于输入)是在安装之前和之后保存所有文件的列表,然后比较列表。
你可以输入
find / -xdev \( -name home -o -name mnt -o -name proc --o -name dev o -name sys \) -prune -o -print | sort > /root/files-before-install
然后安装你的程序并
find / -xdev \( -name home -o -name mnt -o -name proc -o -name dev -o -name sys \) -prune -o -print | sort > /root/files-after-install
(请注意最后的其他文件名)
之后您可以像这样比较文件:
diff /root/files-before-install /root/files-after-install
这将只显示新文件,而不显示更改的文件 - 这会更复杂检测。您的安装程序也有非零的机会创建一个名为“home”、“mnt”、“sys”、“proc”或“dev”的文件或目录,我们会忽略这些文件或目录,但是这种机会我认为相当低。
答案2
检查安装工作原理与您所描述的完全一样:它监视安装程序进程执行的文件系统更改,并提供一种将它们全部回滚的方法。
有多种方法可以将安装记录转换为多个平台(.deb
、RPM 等)的常规包,但即使您不希望这样做,或者您的包管理器不受直接支持,该工具也很有用。