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;?
LANG=C commandund nicht LANG=C;command. Das erste Formular erzwingt den Wert der LANGUmgebungsvariablen für die Dauer, commandwä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.
LANGin der Umgebung, funktioniert also wahrscheinlich mit redundanten Semikolons; aber es ist (1) redundant, weil sich LANGzwischen 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.