Je suis tombé sur cette page wiki: Procédure de dépannage du gestionnaire de packages .
Il y avait des commandes telles que:
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
Alors, quel est le but de LANG=C;
?
package-management
locale
DK Bose
la source
la source
LANG=C command
et nonLANG=C;command
. Le premier formulaire force la valeur deLANG
la variable d'environnement pendant la duréecommand
tandis que le second formulaire est en fait deux commandes où la première partie définit simplement une variable locale (non exportée) et la seconde partie exécute la commande sans définir la variable d'environnement requise.LANG
dans l'environnement, donc il fonctionne probablement avec des points-virgules redondants; mais il est (1) redondant car rien ne va changerLANG
entre les commandes. Faire également allusion à quelqu'un pour exécuter des commandes de cette manière est (2) erroné en raison d'un environnement changeant inutilement et sans invitation, et (3) cela fournit un modèle incorrect pour tout utilisateur non informé qui réapplique plus tard l'utilisation - éventuellement avec une variable shell qui n'est pas dans l'environnement et donc même sans effet sur les commandes exécutées qui le nécessitent pour une fonction correcte, peut-être sûre.Réponses:
Si vous dépannez, vous publierez probablement vos résultats sur un forum, ou ici, tôt ou tard.
Lorsque cela se produit, il est beaucoup plus simple pour les autres utilisateurs de comprendre vos journaux et vos sorties, s'ils ne sont pas internationalisés.
C'est-à-dire que si vous utilisez le français, le chinois ou l'hindi ou quoi que ce soit comme langue système, la sortie est susceptible d'utiliser des termes dans cette langue, ce qui rend d'autant plus difficile la compréhension de ce qui se passe.
Les paramètres régionaux C forcent la sortie par défaut (qui est généralement en anglais uniquement ASCII).
Il est préférable de démarrer une session de dépannage avec:
Au lieu de définir des variables locales spécifiques ou de les définir uniquement pour une commande spécifique.
la source
LANG=C
rendra la sortie de votre terminal aux paramètres régionaux par défaut. Comme ce guide vous suggère d'envoyer votre sortie à Launchpad pour assistance, ils vous demandent de le faire pour que, lorsque vous la collez, les autres puissent la lire, quelle que soit la langue que vous utilisez habituellement.la source
Un petit ajout bien qu'il ne s'applique probablement pas dans le cas d'apt car je le considère comme un logiciel assez stable:
Certains programmes se comportent notoirement mal lorsqu'ils utilisent un paramètre différent pour LANG (ou au moins différent de C ou en_US).
Unity avait (a toujours?) Ces problèmes (et les jeux basés sur Unity), Unreal Engine avait aussi quelques problèmes. De plus, certains des scripts de construction pour Android ne fonctionnaient correctement qu'avec LANG = C ou n'étaient compilés qu'avec cette variable d'environnement définie de cette façon.
Ainsi, cela pourrait également aider à résoudre les problèmes car le bogue pourrait même ne pas se produire avec ce paramètre.
la source