为什么 ~/.local/share 包含这么多种类的数据?

为什么 ~/.local/share 包含这么多种类的数据?

~/.local/share似乎是重要数据、配置数据、日志文件、累积的垃圾以及其他未知数据集合。

鉴于~/.local已经分为binlib,为什么要创建一个目录来包含其他所有内容,而不是创建几个具有更有用和更自然分类的目录?

例如,为什么不建立一个目录来存放这样的内容:

  • 可以安全删除而不影响任何内容的日志和其他数据。
  • 用户特定的配置,其删除将影响行为但不会破坏任何内容。
  • 软件所依赖的基本数据(但这不是它的.local/lib用途吗?)。

事实上,没有明显的方法来确定什么不需要备份,什么可以(通常应该)定期清理或删除。

命名空间share包含特定包的名称(例如rhythmboxnautilus),通用名称(例如fontsicons),以及看似重复的名称(例如app-infoapplications)。

在许多情况下,每个目录与哪个包相关联并不明显。例如,share/Trash被多个包使用;以及是否由哪个包负责清理旧垃圾?

这项~/.local工作正在进行中,还是设计得比看上去要好得多,而软件包维护者却忽略了这种设计,还是我完全忽略了一些显而易见的东西?

上述问题大多是反问性的,旨在说明我对我所看到的内容和我所想的内容之间的普遍混淆,并不是为了寻求明确的答案。

我预计大多数答案但在其他地方也可以找到。具体来说,的原始设计和预期用途是什么~/.local?在哪里记录?

答案1

前提:您会在互联网上发现大量关于 Linux 目录结构的讨论,其中一半是关于“有争议的”设计决策。一些文件夹结构已经失去了其原有的含义,如今仍然存在一些混乱(例如,考虑所有关于“我将二进制文件放在哪个 bin 文件夹中?”的讨论)

我可以简短地说,“.local”就像“/usr”文件夹的表亲(它们具有相同的内部结构!)但具有不同的视角:/usr 目录包含用户使用的应用程序和文件(而不是系统,其应用程序和文件位于其他地方)并且可能需要免受系统更新的影响。

“.local” 通常保留用于“本地安装”的应用程序,即您自行安装的内容,而不是发行版安装附带的内容。还请考虑每个用户都有自己的 .local 文件夹,其中包含其特定文件和配置。

例如:系统图标主题安装在 /usr/share/icons 中。您可以将图标放在 /.local/share/icons 中。主题、字体等也一样。

就我个人而言,如果从这个角度考虑的话,我不认为这是一个混乱的情况。

相关内容