哪个包将特定文件写入 ~/.config

哪个包将特定文件写入 ~/.config

我如何找出哪个包通常在~/.config文件夹中创建特定文件(或文件夹)?

对于开发人员和分销商来说,这一点很重要,他们不希望两个软件包写入用户主目录中的相同配置。

对于分析配置文件的感兴趣的用户来说也很重要(搜索过时的大文件或具有纯文本凭据的文件......)。

到目前为止,我不知道包管理器可以从包中获取此元信息。我希望这不是特定于发行版的。我对所有主要的 Linux 风格都很感兴趣,尤其是基于 Debian 的发行版和 Gentoo。

是否有独立的在线数据库存在,哪里可以查找谁写了哪个文件?

是否存在一个组织可以让程序注册他们的配置文件在home?

答案1

除非您正在做一些不寻常的事情,例如直接在主目录中安装软件包(例如使用Gentoo 前缀),~/.config包管理器不会将其中的文件放置在那里。大多数(如果不是全部)包管理器完全忽略单个用户主目录的内容。因此,您将无法从包管理器获取有关这些特定于用户的配置文件的信息。

此外,我不知道有任何广泛接受的数据库或注册表或任何其他包含~/.config.有一个广泛的约定,即文件或目录的名称应引用以某种方式创建它的程序的名称,但这是一个相当模糊的准则,并且不强制执行。

如果你只是想找出哪个应用程序负责创建文件,如果你无法从名称中看出,我没有太多可添加的特里格的回答。您可能只需要找到某种方法来让程序访问它。

答案2

包系统可能有一些方法来指示哪些文件属于哪些包,

dpkg -S file

rpm -qf file

但是,如果软件包系统缺少这样的工具,或者文件未在软件包系统中注册,而是在程序安装或启动期间自动生成,则这将无济于事。在这种情况下,事后看来可能会很棘手。安装了类似(或 SystemTap)的东西后sysdig,您可以监视文件的活动并查看哪些进程接触它,并从这些进程中可能回溯到该活动所属的包:

sysdig "fd.name contains file"

并让它在安装包(或启动程序)时运行。在安装过程的早期运行它可能很棘手......

相关内容