Opensuse

nix 包管理器:perl 警告:設置語言環境失敗

  • May 11, 2021

每當我為 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,請執行以下操作:

  1. nix-env -iA nixpkgs.glibcLocales
  2. 在您的 bash 個人資料中:

export LOCALE_ARCHIVE="$(nix-env --installed --no-name --out-path --query glibc-locales)/lib/locale/locale-archive"

(全部為一行)。

引用自:https://unix.stackexchange.com/questions/187402