web-dev-qa-db-ja.com

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

他のPerlスクリプトではこの動作が見られないため、何らかの形でnixに関連していると思われます(Perl -e exitなどをWWW :: Curlを使用して試しました)。

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

OSはopenSUSEです。

私に何ができる?

5
hrantzsch

export LC_ALL=C私は実際に警告を取り除きました。

これはより回避策です(LC_ALLも強く推奨されていないため)が、この動作の理由は、nixがopenSUSEに適用されないシステム上のロケールについて行う仮定にあると思います。

4
hrantzsch

どうやらnixに問題があります。 _LOCALE_ARCHIVE_変数を設定することにより、 githubの問題 提案された 回避策 があります。

すでにnixをインストールしている場合は、次のようにしてください。

  1. _nix-env -i glibc-locales_
  2. そしてあなたのbashプロファイル:

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

2
cyraxjoe