オプション1

オプション1

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").

他のPerlスクリプトはこの動作を表示しないので、何らかの方法でnixと関連があると考えられます(WWW::Curlを使ってみましたperl -e exit)。

ロケールを変更すると、警告出力に反映されますが、私が考えることができるすべての設定に警告が表示されます。

オペレーティングシステムはopenSUSEです。

どうですか?

答え1

明らかにこれは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"

    (すべて1行に)。

答え2

export LC_ALL=C実際に警告を削除しました。

これは回避策に近いですが(LC_ALLも強く使用されていないため)、私の考えではこの動作の理由はnixがシステムのロケールに対して作成した仮定がopenSUSEに適用されないためだと思います。

答え3

検索中にこれを見つけ、解決策を提示する必要があると思いました。

環境でLOCALE_ARCHIVEこれへのポインタを提供するだけですlocale-archive

オプション1

以前にインストールしたシステムを使用してくださいlocale-archive

実際に存在することを確認してください

# should find the file
ls /lib/locale/locale-archive

/etc/.profileこれをand / or~/.bashrc/および/ orに追加して、~/.zshrc常にシェルに設定するようにしてください。

export LOCALE_ARCHIVE="/lib/locale/locale-archive"

オプション2a:flake +サブコマンドはサポートされていません

(出典:上記のcyraxjoehttps://unix.stackexchange.com/a/243189/119561)

nixにロケールサポートをインストールします。

nix-env -iA nixpkgs.glibcLocales

見つけることができることを確認してください。

# should give you a path to a folder in your /nix/store
nix-env --installed --no-name --out-path --query glibc-locales

# should find the file
ls $(nix-env --installed --no-name --out-path --query glibc-locales)/lib/locale/locale-archive

/etc/.profileこれをand / or~/.bashrc/および/ orに追加して、~/.zshrc常にシェルに設定するようにしてください。

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

オプション2b:flake +サブコマンドのサポートを含める

nixにロケールサポートをインストールします。

nix profile install nixpkgs#glibcLocales

見つけることができることを確認してください。

# should give you a path to a folder in your /nix/store
nix profile list | grep glibcLocales | tail -n1 | cut -d ' ' -f4

# should find the file
ls $(nix profile list | grep glibcLocales | tail -n1 | cut -d ' ' -f4)/lib/locale/locale-archive

/etc/.profileこれをand / or~/.bashrc/および/ orに追加して、~/.zshrc常にシェルに設定するようにしてください。

export LOCALE_ARCHIVE="$(nix profile list | grep glibcLocales | tail -n1 | cut -d ' ' -f4)/lib/locale/locale-archive"

関連情報