Bu wiki sayfasına rastladım: Paket Yöneticisi Sorun Giderme Prosedürü .
İçinde, aşağıdaki gibi komutlar vardı:
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
Peki amacı LANG=C;
nedir?
LANG=C command
değil LANG=C;command
. İlk form, LANG
ortam değişkeninin değerini süre boyunca zorlar, command
ikinci form aslında iki komuttur; burada birinci bölüm sadece bir yerel (dışa aktarılmamış) değişken ayarlar ve ikinci kısım gerekli ortam değişkenini ayarlamadan komutu çalıştırır.
LANG
çevrede, bu yüzden muhtemelen fazla noktalı virgüllerle çalışır; ancak (1) gereksizdir, çünkü LANG
komutlar arasında hiçbir şey değişmeyecektir . Ayrıca birisinin komutları bu şekilde çalıştırmasını ima etmek, gereksiz ve davetsiz değişen ortam nedeniyle (2) yanlıştır ve (3) bu, daha sonra kullanımı yeniden uygulayan herhangi bir bilgisiz kullanıcı için yanlış bir desen sağlar - muhtemelen içinde olmayan bir kabuk değişkeni ile çevre ve dolayısıyla doğru, belki de güvenli bir işlev için onu gerektiren komutlar üzerinde herhangi bir etkisi bile yoktur.