Opensuse
nix 包管理器:perl 警告:設置語言環境失敗
每當我為 nix 包管理器執行命令(例如 nix-channel –update)時,我都會收到以下警告:
perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = "", LC_ALL = "en_US.UTF-8", LC_CTYPE = "en_US.UTF-8", LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C").
我懷疑它與 nix 有某種關係,因為其他 perl 腳本沒有顯示這種行為(我嘗試
perl -e exit
過使用 WWW::Curl 的東西)。更改語言環境設置確實會反映在警告的輸出中,但警告仍然顯示在我能想到的每個配置中。
作業系統是 openSUSE。
我能做些什麼?
我
export LC_ALL=C
實際上擺脫了警告。這更像是一種解決方法(因為 LC_ALL 也被強烈勸阻),但我猜這種行為的原因在於 nix 對系統上的語言環境做出的假設,這些假設不適用於 openSUSE。
顯然這是nix中的一個問題。GitHub 上有一個問題,通過設置變數提出了解決方法。
LOCALE_ARCHIVE
如果您已經安裝了 nix,請執行以下操作:
nix-env -iA nixpkgs.glibcLocales
- 在您的 bash 個人資料中:
export LOCALE_ARCHIVE="$(nix-env --installed --no-name --out-path --query glibc-locales)/lib/locale/locale-archive"
(全部為一行)。