Ich bin auf diese Wiki-Seite gestoßen : Package Manager Troubleshooting Procedure .
Darin gab es Befehle wie:
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
Wozu also LANG=C;
?
package-management
locale
Gerechtigkeit für Monica
quelle
quelle
LANG=C command
und nichtLANG=C;command
. Das erste Formular erzwingt den Wert derLANG
Umgebungsvariablen für die Dauer,command
während das zweite Formular eigentlich zwei Befehle umfasst, wobei der erste Teil nur eine lokale (nicht exportierte) Variable festlegt und der zweite Teil den Befehl ausführt, ohne die erforderliche Umgebungsvariable festzulegen.LANG
in der Umgebung, funktioniert also wahrscheinlich mit redundanten Semikolons; aber es ist (1) redundant, weil sichLANG
zwischen den Befehlen nichts ändern wird . Der Hinweis, dass jemand Befehle auf diese Weise ausführen soll, ist (2) falsch, weil sich die Umgebung unnötig und ungebeten ändert, und (3) dies liefert ein falsches Muster für jeden nicht informierten Benutzer, der die Verwendung später erneut anwendet - möglicherweise mit einer Shell-Variablen, die sich nicht in befindet die Umgebung und damit auch keine Auswirkungen auf die ausgeführten Befehle, die für eine korrekte, möglicherweise sichere Funktion erforderlich sind.Antworten:
Bei der Fehlerbehebung werden Sie Ihre Ergebnisse wahrscheinlich früher oder später in einem Forum oder hier veröffentlichen.
In diesem Fall ist es für andere Benutzer viel einfacher, Ihre Protokolle und Ausgaben zu verstehen, wenn sie nicht internationalisiert sind.
Das heißt, wenn Sie Französisch oder Chinesisch oder Hindi oder was auch immer als Ihre Systemsprache verwenden, wird die Ausgabe wahrscheinlich Begriffe in dieser Sprache verwenden, und das macht es umso schwieriger zu verstehen, was vor sich geht.
Das Gebietsschema C erzwingt die Standardausgabe (normalerweise nur ASCII-Englisch).
Am besten starten Sie eine Fehlerbehebungssitzung mit:
Anstatt bestimmte Gebietsschemavariablen oder nur für einen bestimmten Befehl festzulegen.
quelle
LANG=C
Dadurch wird die Terminalausgabe auf das Standardgebietsschema zurückgesetzt. Da dieses Handbuch vorschlägt, dass Sie Ihre Ausgabe zur Unterstützung an Launchpad senden, müssen Sie dies tun, damit andere Benutzer sie lesen können, wenn Sie sie einfügen, unabhängig davon, welche Sprache Sie normalerweise verwenden.quelle
Ein kleiner Zusatz, obwohl er bei apt wahrscheinlich nicht zutrifft, da ich ihn als ziemlich stabile Software betrachte:
Einige Programme verhalten sich notorisch falsch, wenn sie eine andere Einstellung für LANG verwenden (oder zumindest eine andere als C oder en_US).
Unity hatte (noch?) Diese Probleme (und Unity-basierte Spiele), auch Unreal Engine hatte einige Probleme. Auch einige der Build-Skripte für Android liefen nur mit LANG = C ordnungsgemäß oder wurden nur mit dieser Umgebungsvariablen kompiliert, die auf diese Weise festgelegt wurde.
Dies könnte auch zur Fehlerbehebung beitragen, da der Fehler bei dieser Einstellung möglicherweise gar nicht auftritt.
quelle