我碰到了这个Wiki页面:Package Manager故障排除过程。
其中包含以下命令:
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;
什么?
3
一些相关的问题:1. LANG = C在许多/etc/init.d/*脚本中。LANG = C会做什么,为什么需要设置LANG = C?,2. 为什么选择“ LANG = C”?(不是D或E或F),3. http://unix.stackexchange.com/questions/87745/what-does-lc-all-c-do。
—
usmanayubsh
请注意,该文档使用了错误的命令-应该正确使用
—
古斯
LANG=C command
,而不应该正确使用LANG=C;command
。第一种形式LANG
在一段时间内强制使用环境变量的值,command
而第二种形式实际上是两个命令,其中第一部分仅设置局部变量(未导出),第二部分运行该命令而不设置所需的环境变量。
@Guss:实际上,它也适用于分号。为什么?因为当您打开终端窗口时LANG是一个现有的环境变量,并且如果您将其值作为单独的命令进行更改,则该值将是有效的环境变量,直到您再次对其进行更改或过程结束为止。
—
Gunnar Hjalmarsson
@Gunnar-不正确:可能
—
FooF,2016年
LANG
在环境中,因此它可能与多余的分号一起使用;但这是(1)多余的,因为LANG
命令之间什么都不会改变。还暗示有人以这种方式运行命令是(2)由于不必要和不受欢迎的环境更改而导致的错误,并且(3)这为任何不知情的用户提供了不正确的模式,后来用户重新应用该用法-可能是由于shell变量不在环境,因此甚至不会对要求其提供正确(也许是安全)功能的命令的运行产生任何影响。
@Braiam我熟悉语法,但是需要注意的是,除非导出变量,否则该命令将看不到它。LANG是标准环境变量,因此默认情况下会导出-但其他变量可能不是,并且OP应该意识到这一点。
—
古斯