/etc/locale.conf 和 /etc/default/locale 之间的区别

/etc/locale.conf 和 /etc/default/locale 之间的区别

我正在运行 KDE neon 5.20,发现两个文件/etc/locale.conf内容/etc/default/locale相似。这两个文件有什么区别,我应该编辑哪一个来更改系统区域设置?

答案1

许多应用软件需要LANG环境变量才能工作。所以大多数发行版都有一个启动脚本来在登录后设置 LANG。

那么启动脚本从哪里读取 LANG 配置呢?发行版之间有所不同,例如

  • Debian 默认控制台登录启动脚本读取/etc/default/locale
  • Slackware默认控制台登录启动脚本点源 /etc/profile.d/lang.sh
  • KDE Plasma 读取~/.config/plasma-localerc
  • 其他一些发行版阅读/etc/locale.conf

Systemd 不知道它安装在哪个发行版上。因此,当您要使用 localectl 修改配置时,localectl 会检测是否/etc/locale.conf存在。如果存在,则 localectl 会修改它,或者将其修改/etc/default/locale为后备。

就Ubuntu(非GUI)而言,如果/etc/locale.conf存在case,你会发现无论你如何运行localectl,LANG变量在重启后都会保留。这是因为 Ubuntu 使用/etc/default/locale, localectl 修改了一个 Ubuntu 永远不会读取的文件。

答案2

Linux 的不同发行版或版本采用其中之一。作为一个恰当的例子,Debian 10 的文档主要参考/etc/default/locale(例如man update-locale)。其与systemd相关的部分也可参考/etc/locale.conf(例如man locale.conf)。

一个简短的测试表明(也是 Debian 10 的 systemd 的一部分)报告as 系统语言环境localectl的内容,除非也存在:在这种情况下,它显然优先。/etc/default/locale/etc/locale.conf

/etc/default/locale专门使用(同样,在当前版本的 Debian 上)。我的理由是:这个可以适合Debian,任何一个都适合系统,所以总的来说这是一个明确的选择。

答案3

经过一些实验,我确定 KDE neon 尊重 中的区域设置/etc/default/locale,但忽略 中的区域设置/etc/locale.conf。我仍然不明白为什么 Ubuntu 对区域设置文件使用不同的位置,但我得出的结论是,在基于 Ubuntu 的发行版上,有必要使用它/etc/default/locale来设置区域设置。另外,我刚刚替换/etc/default/locale为 的符号链接/etc/locale.conf,一切正常,但现在我只有一个包含区域设置的文件。

相关内容