我注意到我安装了几个不需要的语言环境,例如firefox-locale-
。我只需要一个语言环境。
如何删除所有剩余部分?
答案1
首先输入locale
命令打印出您当前的语言环境配置。此外,您还可以使用locale -a
显示所有可用语言环境的列表。
清理未使用的语言环境
安装localepurge
以删除任何不需要的语言,同时选择要保留的语言。请注意,此方法不会更改系统上的语言环境设置。它只会清除您未选择的语言环境。使用时风险自负。
sudo apt-get install localepurge
之后你可以重新启动或者尝试运行 source /etc/default/locale
。
要重新配置,只需在终端中输入以下内容:
sudo dpkg-reconfigure localepurge
其他方式在这里回答是
sudo locale-gen --purge <locales YOU WANT TO KEEP>
参考
答案2
除非您需要经常在各个语言环境之间切换,否则您可以卸载未使用的语言环境并释放系统中的一些存储空间。
通过终端安装 Localepurge:
sudo apt-get install localepurge
安装完成后,它将从您的系统中删除所有您不需要的语言环境文件。
答案3
笔记:下面的一些命令需要root权限,请考虑使用sudo
。
基本信息
根据man locale-gen
,语言环境在几个文件中设置。
/etc/locale.gen
主配置文件具有简单的格式:每一行非空且不以 # 开头的行都被视为要构建的区域设置定义。
/var/lib/locales/supported.d/
包含语言包提供的 locale.gen 片段的目录。请勿手动编辑这些片段,它们将在包升级时被覆盖。
语言环境被编译(生成)成一个文件。
/usr/lib/locale/locale-archive
通常的默认语言环境存档位置。
有关地点的全面详细信息建筑维基。
检查区域设置和语言环境
要列出可用(已知)的区域设置,请运行以下任一命令(输出略有不同)。
locale -a
localectl list-locales
要检查(已)生成的语言环境,请运行以下命令。
localedef --list-archive
要检查当前使用的区域设置,请运行以下任一命令(输出略有不同)。
locale
localectl
设置和生成(新)区域设置
通常通过取消注释行来设置区域设置/etc/locale.gen
,然后locale-gen
需要运行。
nano /etc/locale.gen # uncomment desired lines (locales)
locale-gen
这将为 中和 下的/usr/lib/locale/locale-archive
每个未注释的行编译(生成)语言环境,无论它们之前是否被编译过。/etc/locale.gen
/var/lib/locales/supported.d/
或者,命令
locale-gen <locale>
将在生成所需的语言环境时取消注释相应的行locale-gen
,并且仅生成这一行。
注意: 的实现locale-gen
取决于发行版。例如,上述命令在 Ubuntu/Debian 中有效,但在 ArchLinux 中无效。
删除区域设置
发出 时locale-gen
,已编译的存档将被删除,并且所有/etc/locale.gen
和 下的语言环境/usr/lib/locale/locale-archive
都将重新生成。该命令locale-gen --purge <locale>
不会执行修饰符所建议的操作,而是相反:它会删除除所指示的语言环境之外的所有已编译语言环境。要确保在locale-gen
发出 或 并执行更新时只生成特定语言环境,必须同时考虑/etc/locale.gen
和。/usr/lib/locale/locale-archive
要删除中的语言环境/etc/locale.gen
,只需注释掉所需的行并使用重新生成语言环境即可locale-gen
。
删除 下的语言环境/var/lib/locales/supported.d/
比较棘手。由于任何文件都/var/lib/locales/supported.d/<code>
依赖于 软件包language-pack-<code>-base
,因此当 软件包更新时,前者的任何更改都将恢复。要解决这个问题,只需保留 下更新文件的软件包/var/lib/locales/supported.d/
。在 Ubuntu/Debian 中实现此目的的命令如下。
apt-mark language-pack-<code>-base
要更新保留的包,您必须取消标记或者简单地--ignore-hold
。
解决方法。一个更具侵入性但更通用的解决方案,可以防止更改,/var/lib/locales/supported.d/
方法是使用“不可变(i)”属性。因此,不要删除文件,而是清空它们。例如:
cd /var/lib/locales/supported.d/
rm <code> && touch <code> # <code> has been emptied
lsattr <code> # regular attributes
chattr +i <code> # adding (+) immutable
lsattr <code> # checking attributes
设置区域
设置和生成区域设置不会设置系统区域设置。以下任何命令都可以实现此目的。
echo LANG=<code> | sudo tee /etc/locale.conf # reboot (might be ignored in Ubuntu)
localectl set-locale LANG=<code>