AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 394610
Accepted
Ryan
Ryan
Asked: 2012-06-01 22:43:09 +0800 CST2012-06-01 22:43:09 +0800 CST 2012-06-01 22:43:09 +0800 CST

在 Ubuntu 中删除语言环境

  • 772

我不小心添加了一个语言环境,例如 sudo locale-gen zh_TW

例如语言环境-a

zh_TW

但是如何去除呢?

ubuntu localization
  • 5 5 个回答
  • 10050 Views

5 个回答

  • Voted
  1. Oliver
    2012-06-01T23:05:26+08:002012-06-01T23:05:26+08:00

    您还可以使用重新配置 locales 包dpkg-reconfigure locales。

    • 9
  2. Best Answer
    mgorven
    2012-06-01T23:01:05+08:002012-06-01T23:01:05+08:00

    我认为您可以通过编辑/var/lib/locales/supported.d/local和删除该语言环境来做到这一点。然后运行locale-gen以重新生成已编译的语言环境。

    • 6
  3. Paulo Coghi
    2019-01-26T07:12:21+08:002019-01-26T07:12:21+08:00

    我的机器上安装了哪些语言环境?

    您可以使用 locale 命令检查在您的系统上生成和配置了哪些语言环境:

    • locale... 列出当前的语言环境配置
    • locale -a... 列出在您的系统上生成的所有语言环境
    • locale -a -v...列出所有语言环境并显示有用的附加信息(例如包含语言环境信息数据文件的目录名称)

    上面的最后一个命令让您看到所有生成的语言环境都位于 中/usr/lib/locale/,如果不需要,您可以删除其中的任何一个。每个语言环境信息包都是一个包含文本文件和其他目录的目录。

    -

    支持的语言环境

    您希望系统支持的所有语言环境都列在/var/lib/locales/supported.d/. 这些文件有两列,语言标签和字符映射。

    我希望我的系统只识别美国英语,所以我只有一个文件,名为en,其中只包含一行:

    en_US UTF-8
    

    -

    错误信息

    如果在发出 locale 命令时显示错误消息,例如

    locale: Cannot set LC_ALL to default locale: No such file or directory
    

    确保文件/etc/default/locale存在并具有正确的内容,例如:

    LANG="en_US"
    LANGUAGE="en_US:en"
    

    -

    摆脱不需要的语言环境数据 - 一步一步

    现在我们知道开始清理系统区域设置信息的所有必要细节:

    1. 编辑 中的语言环境文件/var/lib/locales/supported.d/,并删除所有不需要的语言环境(每行一个语言环境)
    2. 创建和编辑/etc/default/locale(示例见上)
    3. 删除所有生成的语言环境数据:rm -rfv /usr/lib/locale/*
    4. 重新生成新的语言环境:locale-gen

    就这样!重新启动机器以使更改生效。然后运行上面的一个或多个区域设置命令示例,以确保结果符合预期。

    -

    参考:

    https://www.linuxquestions.org/questions/blog/bittner-195120/remove-unwanted-locales-on-ubuntu-debian-3281/

    • 6
  4. vitaminace33
    2020-10-11T03:48:18+08:002020-10-11T03:48:18+08:00

    注意:下面的一些命令需要 root 权限,请考虑使用sudo.

    基本信息

    根据man locale-gen,语言环境设置在几个文件中。

    /etc/locale.gen

    主配置文件,其格式很简单:每一行非空且不以 # 开头的行都被视为要构建的语言环境定义。

    /var/lib/locales/supported.d/

    包含语言包包提供的 locale.gen 片段的目录。不要手动编辑这些,它们将在软件包升级时被覆盖。

    语言环境被编译(生成)到一个文件中。

    /usr/lib/locale/locale-archive

    通常的默认语言环境存档位置。

    Arch Wiki上有关语言环境的全面详细信息。

    检查语言环境和语言环境

    要列出可用的(已知的)区域设置,请运行以下任何命令(输出差异很小)。

    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>依赖于 package language-pack-<code>-base,因此当更新后者时,对前者的任何更改都将被恢复。要解决这个问题,只需将更新文件的包放在/var/lib/locales/supported.d/. 在 Ubuntu/Debian 中实现此目的的命令如下。

    apt-mark language-pack-<code>-base
    

    要更新保留的包,您必须取消标记或简单地--ignore-hold.

    解决方法。一种更具侵入性但通用的防止更改的解决方案是使用“不可变(i)”属性/var/lib/locales/supported.d/在其中设置文件。因此,与其删除文件,不如清空它们。例如:

    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>
    
    • 4
  5. djdomi
    2022-07-17T05:03:39+08:002022-07-17T05:03:39+08:00

    我不确定为什么大多数发行版和用户都不知道localepurge

    对于基于 Debian 的系统,它应该由

    apt-get install localepurge
    

    从联机帮助页:

    localepurge 是一个小脚本,用于恢复因不需要的区域设置文件和本地化手册页而浪费的磁盘空间。它会在任何 apt 安装运行完成后由 dpkg 自动调用。

    在 /etc/locale.nopurge 配置文件中运行每次 apt 安装后,您必须定义要防止删除的语言环境目录名称。除非已充分配置 localepurge,否则根本不会触及系统的本地化文件。

    以下目录的内容将受到删除的影响:

     - /usr/share/doc/kde/HTML
     - /usr/share/gnome/help
     - /usr/share/locale
     - /usr/share/man
     - /usr/share/omf
     - /usr/share/tcltk
     - /usr/share/cups/{templates,locale,doc-root}
     - /usr/share/calendar
     - /usr/share/aptitude
     - /usr/share/help/<domain>/HELP_CONTENT(files&dirs)
     - /usr/share/vim/vim*/lang
    

    您实际需要的本地化文件以及您希望保留在系统上的本地化文件可以通过运行以下命令轻松配置:

    dpkg-reconfigure localepurge
    

    结论:该脚本将处理当前和将来任何不需要的语言环境。

    • 0

相关问题

  • 无法通过 Ubuntu VPN 访问外部网络

  • ubuntu apt-get upgrade - 如何在 shell 中单击确定?

  • VirtualBox 上 Ubuntu 的访客优化技巧 [关闭]

  • 外部硬盘上的 virtualbox 虚拟硬盘驱动器(Vista 主机上的 ubuntu 客户机)

  • 如何在 Ubuntu 上挂载 LVM 分区?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve