我不确定是否可能,但如果可能,我如何找到与软件相关的所有文件?例如,有没有办法找到所有gedit需要和使用的文件?
此类命令/技术是否会收集诸如/usr/share/gtksourceview-3.0/styles/oblivion.xml并非专用于某个软件或由其他软件拥有的文件?
要列出属于包的文件,请运行
$ dpkg -L packagename
Run Code Online (Sandbox Code Playgroud)
注意:通常不包含配置文件。
要查找文件所属的包,请运行
$ dpkg -S /path/to/file
Run Code Online (Sandbox Code Playgroud)
恐怕这是一个不小的问题。一些可能对您有帮助的方法:
您可以通过查看 来找到特定包安装的所有文件/var/lib/dpkg/info/gedit.list。
gedit您可以通过运行找到依赖的所有其他包apt-cache depends gedit。gedit(反之,你可以找到所有依赖于的包apt-cache rdepends gedit)。请记住,这些函数不是递归的 - 因为gedit要成功运行需要大量的系统资源 - 例如,C 库、X 图形系统、dbus 系统消息总线......
您可以通过运行来找出可执行文件在运行时需要哪些库文件ldd $(which gedit)。(在本例中,which gedit当您运行时返回实际可执行文件运行的路径)。gedit/usr/bin/gedit
您可以通过运行来找出给定进程(当前)打开了哪些文件lsof -c gedit。(程序可能会在启动时将文件(例如图标)加载到内存中并关闭其文件描述符,这些文件描述符不会显示在这样的列表中)。