Me deparei com esta página wiki: Procedimento de solução de problemas do Gerenciador de Pacotes .
Nele, havia comandos como:
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
Então, qual é o propósito LANG=C;
?
package-management
locale
DK Bose
fonte
fonte
LANG=C command
e nãoLANG=C;command
. O primeiro formulário força o valor daLANG
variável de ambiente durante o período em quecommand
o segundo formulário é na verdade dois comandos em que a primeira parte apenas define uma variável local (não exportada) e a segunda parte executa o comando sem definir a variável de ambiente necessária.LANG
está no ambiente, portanto provavelmente funciona com ponto e vírgula redundante; mas é (1) redundante porque nada vai mudarLANG
entre os comandos. Também sugerir que alguém execute comandos dessa maneira está (2) errado por causa de um ambiente de mudança desnecessário e não convidado, e (3) isso fornece um padrão incorreto para qualquer usuário desinformado que reaplicar posteriormente o uso - possivelmente com uma variável de shell que não esteja em o ambiente e, portanto, nem mesmo tendo qualquer efeito sobre os comandos executados que exijam a função correta, talvez segura.Respostas:
Se você estiver solucionando problemas, provavelmente postará seus resultados em algum fórum ou aqui, mais cedo ou mais tarde.
Quando isso acontece, é muito mais simples para outros usuários entenderem seus logs e resultados, se não forem internacionalizados.
Ou seja, se você estiver usando francês, chinês ou hindi ou qualquer outro idioma do sistema, é provável que a saída use termos nesse idioma, e isso torna ainda mais difícil entender o que está acontecendo.
O código do idioma C força a saída padrão (que geralmente é em inglês somente ASCII).
É melhor iniciar uma sessão de solução de problemas com:
Em vez de definir variáveis de código de idioma específicas ou defini-lo apenas para um comando específico.
fonte
LANG=C
fará com que a saída do terminal retorne ao código do idioma padrão. Como este guia sugere que você envie sua saída para o Launchpad para suporte, eles solicitam que você faça isso para que, quando você o cole, outros possam lê-lo, independentemente do idioma que você costuma usar.fonte
Uma pequena adição, embora provavelmente não se aplique no caso do apt, pois o considero um software bastante estável:
Alguns programas notoriamente se comportam mal ao usar uma configuração diferente para LANG (ou pelo menos diferente de C ou en_US).
O Unity teve (ainda tem?) Esses problemas (e jogos baseados no Unity), o Unreal Engine também teve alguns problemas. Além disso, alguns scripts de construção para Android foram executados apenas com LANG = C corretamente ou compilados apenas com essa variável de ambiente configurada dessa maneira.
Portanto, isso também pode ajudar na solução de problemas, pois o bug pode nem ocorrer com essa configuração.
fonte