使用 apt-get 安裝軟件時,總是出現下面的錯誤。
perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = "en_US:", LC_ALL = (unset), LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C").
安裝軟件時,都會去執行 update-locale
命令,用來更新 locale。這個命令是 perl 腳本(可以用 whereis update-locale
查到)
root@ubuntu:/# whereis update-locale update-locale: /usr/sbin/update-locale /usr/share/man/man8/update-locale.8.gz
使用指令測試 perl,並不是因為 update-locale 命令錯了,而是因為 perl 的配置出了問題。
root@ubuntu:/# perl -e exit
perl 使用系統提供的默認 local 的 en_US.UTF-8,但這個值是 ssh 從客戶端傳遞來的,系統其實不知道 en_US.UTF-8 該如何處理。
安裝語言包即可,但是不知道語言包名稱,此時可以通過官網來查詢語言包名稱
ubuntu 查詢包名網站:https://packages.ubuntu.com/
點擊搜索后就會出現匹配的包名,其實 language-pack-en 依賴於 language-pack-en-base,安裝 language-pack-en 的同時會默認安裝 language-pack-en-base
如果想確認的話可以點擊 language-pack-en 下面的 xenial(16.04 LTS),里面可以看到其所有依賴包、推薦包、建議包等。
root@ubuntu:/# apt-get install language-pack-en
安裝成功后再使用指令測試 perl,再不會報錯。
參考網站:https://www.jianshu.com/p/7cb39acb2513