を実行するとperl
、次の警告が表示されます。
perl:警告:ロケールの設定に失敗しました。 perl:警告:ロケール設定を確認してください: LANGUAGE =(未設定)、 LC_ALL =(未設定)、 LANG = "en_US.UTF-8" システムでサポートおよびインストールされています。 perl:警告:標準ロケール( "C")にフォールバックします。
どうすれば修正できますか?
~/.pam_environment
を実行するとperl
、次の警告が表示されます。
perl:警告:ロケールの設定に失敗しました。 perl:警告:ロケール設定を確認してください: LANGUAGE =(未設定)、 LC_ALL =(未設定)、 LANG = "en_US.UTF-8" システムでサポートおよびインストールされています。 perl:警告:標準ロケール( "C")にフォールバックします。
どうすれば修正できますか?
~/.pam_environment
回答:
あなたのOSはを知りませんen_US.UTF-8
。
特定のプラットフォームについては言及していませんが、問題を再現できます。
%uname -a OSF1 hunter2 V5.1 2650 alpha %perl -e exit perl:警告:ロケールの設定に失敗しました。 perl:警告:ロケール設定を確認してください: LC_ALL =(未設定)、 LANG = "en_US.UTF-8" システムでサポートおよびインストールされています。 perl:警告:標準ロケール( "C")にフォールバックします。
私の推測では、sshを使用して、新しいデスクトップマシンからこの古いホストに接続しています。/etc/ssh/sshd_config
を含むことは一般的です
AcceptEnv LANG LC_*
これにより、クライアントはこれらの環境変数の値を新しいセッションに伝播できます。
警告は、フルロケールを必要としない場合にそれをスケルチする方法についてのヒントを提供します。
%env LANG = C perl -e exit %
またはbashで:
$ LANG = C perl -e exit ドル
恒久的な修正を行うには、次のいずれかを選択します
dpkg-reconfigure locales
、メッセージが消えました。
service ssh reload
、現在のsshセッションが終了することすらありません。
Mac OS Lion(10.7)またはCygwin(Windows 10)で解決する方法は次のとおりです。
ホストマシンのbashrcまたはbash_profileに次の行を追加します。
# Setting for the new UTF-8 terminal support in Lion
export LC_CTYPE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
zshを使用している場合は、zshrcを編集します。
# Setting for the new UTF-8 terminal support in Lion
LC_CTYPE=en_US.UTF-8
LC_ALL=en_US.UTF-8
LC_ALL
他のすべての変数を上書きするため、ではなく、のLANG=de_AT.UTF-8
ような個々の変数を設定しますLC_MESSAGES=en_US.UTF-8
。変数が設定されていない場合は、にフォールバックしLANG
ます。あなたもできます。unset LC_CTYPE
強制的ににフォールバックしLANG
ます。
~/.bashrc
解決しました...次に、リロードする必要がありsource ~/.bashrc
ます... Thnks <3
debootstrapを使用してrootfsを作成している場合は、ロケールを生成する必要があります。これを実行するには、次のコマンドを実行します。
# (optional) enable missing locales
sudo nano /etc/locale.gen
# then regenerate
sudo locale-gen
このヒントは、https://help.ubuntu.com/community/Xenからのものです
Ubuntu Server
$ echo en_US UTF-8 >> /etc/locale.gen
最初に行う必要がある場合があります。
locale-gen
引数を取らない。から読む/etc/locale.gen
。
使用する:
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8
Debianで動作します。理由はわかりませんが、locale-genには結果がありませんでした。
重要!これは一時的な解決策です。セッションごとに実行する必要があります。
.bashrc
ファイルに入れました。
local-gen
でコメント化されていないロケールのみを処理し/etc/local.gen
ます。echo en_US UTF-8 >> /etc/locale.gen
最初に行う必要がある場合があります。
これは通常、Linuxボックスでロケールを適切に設定していないことを意味します。
DebianまたはUbuntuでは、それはあなたがする必要があることを意味します
$ sudo locale-gen $ sudo dpkg-reconfigure locales
man locale-genも参照してください。
sudo locale-gen es_UY.UTF-8
Gitの使用中に同じ警告が表示されました
この警告を解決するにはオプションをオフにしてSet locale environment variable on startup
、端末を再起動します。以下のスクリーンショットは私の端末設定を表しています。
Ubuntuでの簡単な修正です。ロケールを最初から生成し、コマンドラインから次のコマンドを実行する必要があります。
sudo locale-gen en_US en_US.UTF-8
sudo dpkg-reconfigure locales
これにより、ロケールが作成され、それらが再構成されます。
pt_BR pt_BR.UTF-8
-ありがとう。
/etc/environment
DebianとUbuntuでの問題を修正するために以下を追加します(もちろん、使用するロケールに合わせて変更します)。
LANGUAGE=en_US.UTF-8
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
/etc/environment
は非推奨であり、代わりにで設定する必要があるという警告が表示されました/etc/default/locale
。どちらも今のところ機能しているようです。
LC_CTYPE
私は今これを使っています:
$ cat /etc/environment
...
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
次に、SSHセッションからログアウトして、再度ログインします。
古い答え:
これだけが私を助けました:
$ locale
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE=en_US.UTF-8
LC_NUMERIC=ru_RU.UTF-8
LC_TIME=ru_RU.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=ru_RU.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=ru_RU.UTF-8
LC_NAME=ru_RU.UTF-8
LC_ADDRESS=ru_RU.UTF-8
LC_TELEPHONE=ru_RU.UTF-8
LC_MEASUREMENT=ru_RU.UTF-8
LC_IDENTIFICATION=ru_RU.UTF-8
LC_ALL=
$ sudo su
# export LANGUAGE=en_US.UTF-8
# export LANG=en_US.UTF-8
# export LC_ALL=en_US.UTF-8
# locale-gen en_US.UTF-8
Generating locales...
en_US.UTF-8... up-to-date
Generation complete.
# dpkg-reconfigure locales
Generating locales...
en_AG.UTF-8... done
en_AU.UTF-8... done
en_BW.UTF-8... done
en_CA.UTF-8... done
en_DK.UTF-8... done
en_GB.UTF-8... done
en_HK.UTF-8... done
en_IE.UTF-8... done
en_IN.UTF-8... done
en_NG.UTF-8... done
en_NZ.UTF-8... done
en_PH.UTF-8... done
en_SG.UTF-8... done
en_US.UTF-8... up-to-date
en_ZA.UTF-8... done
en_ZM.UTF-8... done
en_ZW.UTF-8... done
Generation complete.
# exit
$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
Debianで多くの検索を行った後、これでうまくいきました。
最初:
sudo apt-get purge locales
次に:
sudo aptitude install locales
そして有名な:
sudo dpkg-reconfigure locales
これにより、システムのロケールが取り除かれ、ロケールが再インストールされ、libc6が2.19から2.13にダウングレードされます。これが問題です。次に、ロケールを再度構成します。
dpkg-reconfigure locales
必要なのはこれだけです sudo
あなたがsudoタイプの男なら、またはrootとしてそれをやってください。次に、シェル環境にあるものに従ってロケールを選択します。
これは簡単な答えです。再起動後に未設定でないロケールを設定します。まずbashファイルを開いて編集します。
nano .bashrc
次の行をファイルに追加します。
export LC_ALL="en_US.UTF-8"
export LANG="en_US.UTF-8"
export LANGUAGE="en_US.UTF-8"
bashをリロードして変更をアクティブ化します。
source ~/.bashrc
試験結果 :
locale
あなたが使用している場合はMac OS Xのv10 SP1のサーバーのLinuxに接続するために上記(ヨセミテ)または、次の手順を試すことができます。
ファイル/ etc / ssh / sshd-configを元のままにします
〜/ .bash_profileを付けます
export LANG="en_US"
export LC_ALL=$LANG.UTF-8
走る
dpkg-reconfigure locales
そして「en_US.UTF-8」を選択します
sudo nano /etc/locale.gen
使用するロケールのコメントを外します(例:)en_US.UTF-8 UTF-8
:
次に実行します:
sudo /usr/sbin/locale-gen
/etc/default/locale
、ログアウト、ログインでロケールを適切に設定してから、通常のコマンドを実行する必要があります
root@host:~# echo -e 'LANG=en_US.UTF-8\nLC_ALL=en_US.UTF-8' > /etc/default/locale
root@host:~# exit
local-user@local:~$ ssh root@host
root@host:~# locale-gen en_US.UTF-8
root@host:~# dpkg-reconfigure locales
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_ALL to default locale: No such file or directory
解決:
これを試してください(uk_UA.UTF-8が現在のロケールです。たとえば、en_US.UTF-8などのロケールを記述してください)。
sudo locale-gen uk_UA.UTF-8
この。
sudo dpkg-reconfigure locales
私にとっては、.bashrcファイルを編集してこのエラーを修正し、エクスポートを追加します。最初のコメントの後に追加します。
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_TYPE=en_US.UTF-8
親切なRegads、
正しいロケールを追加~/.bashrc
、~/.bash_profile
、/etc/environment
などの問題を解決する、それはからの設定を上書きして、しかし、それは、推奨されていない/etc/default/locale
、最高の状態で混乱して、最悪で一貫して適用されていないロケールにつながる可能性があります。
代わりに、/etc/default/locale
次のように直接編集する必要があります。
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE=en_US
変更は次回ログインしたときに有効になります。次の/etc/default/locale
ようにソースすることにより、既存のシェルで新しいロケールを取得できます。
$ . /etc/default/locale
locale-gen
MacOS High Sierra上のiTerm2.appからDigitalOceanまたはその他のクラウドホスティングプロバイダーに接続していて、一部のコマンドでこのエラーが発生する場合:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
これで問題が解決しました:
私はこのスレッドが古いことを知っていますが、多分誰かがこれが役に立つと思うでしょう。これがいらいらすることがあるのを知っています。
受け入れられた答えに従ってください:
LANG = C ssh hunter2。
LC_ALL = C ssh hunter2
クライアント側で私のためにトリックをしました。
zsh ohmyzshでこれをに追加しました.zshrc
:
# You may need to manually set your language environment
LANGUAGE=en_US.UTF-8
LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
LC_ALL=en_US.UTF-8
行を削除することにより export LANG=en_US.UTF-8
新しいタブを再度開いてSSHで接続し、私のために働いた:)
いつものように、悪魔は細部に...
上のMac OS X v10.7.5(ライオン)、いくつか修正するDjangoの私の中で、エラーを~/.bash_profile
Iとしましセット:
export LANG=en_EN.UTF-8
export LC_COLLATE=$LANG
export LC_CTYPE=$LANG
export LC_MESSAGES=$LANG
export LC_MONETARY=$LANG
export LC_NUMERIC=$LANG
export LC_TIME=$LANG
export LC_ALL=$LANG
そして、長い間、Perlを使用しているときにその警告を受けました。
悪い!後で気づいたように、私のシステムはen_US.UTF-8
!から変更するだけで修正しました
export LANG=en_EN.UTF-8
に
export LANG=en_US.UTF-8
ロケールの問題を気にしない場合は、を設定できますPERL_BADLANG=0
。もちろん、これは誤ったローカリゼーションをもたらす可能性があります。
以前のすべての答えは間違っています。メッセージは明確です-ロケールがありません。解決策は、適切なロケールを追加することです。/etc/locale.genファイルを編集して、不足していると報告されているロケールの前にある#記号を削除して、次のコマンドを発行します。
$ sudo locale-gen
これは実際に/etc/locale.genで指定されたロケールを生成するため、メッセージは表示されません。
私の場合、debian8.6では、次の設定を変更する必要がありました。
/etc/ssh/ssh_config
ために #AcceptEnv LANG LC_*
そしての
sshd_config
ために#SendEnv LANG LC_*
次に、sshサービスを再起動します。
やっとやった
locale-gen en_US.UTF-8
そして dpkg-reconfigure locales
不足しているロケールを.bash_profileに追加します
echo "export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8">>~/.bash_profile
次に、.bash_profileを入手します
source ~/.bash_profile
私の場合、これは出力でした:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_PAPER = "ro_RO.UTF-8",
LC_ADDRESS = "ro_RO.UTF-8",
....
解決策は:
sudo locale-gen ro_RO.UTF-8
私にとって、Ubuntu 16.04(Xenial Xerus)では、以下が機能しました:
root@host:~#locale-gen en_GB.UTF-8
root@host:~#localectl set-locale LANG=en_GB.UTF-8,LC_ALL=en_GB.UTF-8
次に再起動します...