为什么推荐“LANG=C;sudo apt-get clean”等?

为什么推荐“LANG=C;sudo apt-get clean”等?

我偶然发现了这个维基页面:程序包管理器故障排除程序

其中有如下命令:

LANG=C;sudo apt-get clean
LANG=C;sudo apt-get autoclean
LANG=C;sudo apt-get -f install
LANG=C;sudo apt-get --fix-missing install
LANG=C;sudo apt-get --purge autoremove
LANG=C;sudo apt-get --fix-missing update -o APT::Cache-Limit=100000000
LANG=C;sudo apt-get update -o APT::Cache-Limit=100000000 && sudo apt-get dist-upgrade

那么的目的是什么LANG=C;

答案1

如果您正在进行故障排除,您迟早可能会在某个论坛或这里发布您的结果。

当这种情况发生时,如果您的日志和输出未国际化,其他用户就更容易理解您的日志和输出。

也就是说,如果您使用法语、中文、印地语或其他语言作为系统语言,则输出可能会使用该语言的术语,这使得更难理解正在发生的事情。

C 语言环境强制默认输出(通常是 ASCII 纯英语)。

最好从以下方式开始故障排除会话:

export LC_ALL=C

而不是设置特定的区域变量,或者仅为特定命令进行设置。

答案2

LANG=C将使您的终端输出恢复为默认语言环境。由于本指南建议您将输出发送到 Launchpad 以获得支持,因此他们让您这样做是为了当您粘贴它时,无论您通常使用哪种语言,其他人都能够阅读它。

答案3

虽然一个小小的补充可能不适用于 apt 的情况,但我认为它是一款非常稳定的软件:

某些程序在使用不同的 LANG 设置(或者至少不同于 C 或 en_US)时会出现错误行为。

Unity 曾存在(现在仍存在?)这些问题(以及基于 Unity 的游戏),虚幻引擎也存在一些问题。此外,一些 Android 构建脚本只能在 LANG=C 的情况下正确运行,或者只能在以这种方式设置此环境变量的情况下进行编译。

因此这也可以有助于排除故障,因为在这种设置下错误可能不会发生。

相关内容