mongoドキュメントを使用してmongoをインストールしようとしています。UbuntuにMongoDBをインストールします。インストール中にエラーは表示されませんでした。しかし、mongo
コマンドを実行すると、ターミナルにエラーが表示されます。
グローバル初期化の失敗:BadValue無効またはユーザーロケールが設定されていません。LANGおよび/またはLC_ *環境変数が正しく設定されていることを確認してください
mongoドキュメントを使用してmongoをインストールしようとしています。UbuntuにMongoDBをインストールします。インストール中にエラーは表示されませんでした。しかし、mongo
コマンドを実行すると、ターミナルにエラーが表示されます。
グローバル初期化の失敗:BadValue無効またはユーザーロケールが設定されていません。LANGおよび/またはLC_ *環境変数が正しく設定されていることを確認してください
回答:
あなたのように見えるlocale
設定が壊れたか、そのVMに存在しない、またはそのVM上に、少なくともそのセッションされています。ロケールが正しく設定されていないと、MongoDBの依存関係の1つ(boost)が失敗します(SERVER-9032を参照)。参考までに、SERVER-9032の変更前は、この問題は引き続き発生していましたが、このように見えました。
時々、ログアウトして再度ログインすることで解決できる場合があります(現在のセッションでのみ破損する)か、実行sudo locale-gen
を試して、生成が成功したことを確認できます。
それまでの間、実行mongo
(またはmongod
その他)を行うための回避策としてLC_ALL
、プログラムを開始する前に変数を手動で設定するだけです。
export LC_ALL=C
mongo
また、Ubuntu 12.04にMongoDBをインストールしようとしましたが、仮想マシン(XEN)で同じエラーが発生しました。私にとって、modifiying /etc/default/locale
はトリックをしました。私はこれらの設定で動作するようにしました:
LANG=en_US.UTF-8
LANGUAGE=en_US
LC_ALL=en_US.UTF-8
または、別の有効な設定があります(引用符と:enに注意してください):
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"
LC_ALL="en_US.UTF-8"
Adam Cの回避策export
も役立っており、おそらくもっと手の込んだ答えでしょう。
ここで提供される他の回答は問題を正しく解決しますが、次のStackoverflowの質問は、Vagrant VMにMongoDBをインストールして上記のエラーを取得する際の実際の問題を示しています。
この問題は、ホストマシンがsshを介してゲストにロケールを設定するために発生します。
したがって、Vagrantfile内のホストロケールをオーバーライドすることを提案する答えは、たった1行で永続的に解決します。
Vagrant.configure(2) do |config|
ENV['LC_ALL']="en_US.UTF-8"
# ...
end
また、ホスト上の実際のLC_ALL値を変更しないというコメントにも注意してください。
このhttps://askubuntu.com/a/227513/59618に基づいて、次のことができます。
$ sudo locale-gen "en_US.UTF-8"
Generating locales...
en_US.UTF-8... done
Generation complete.
$ sudo dpkg-reconfigure locales
Generating locales...
en_US.UTF-8... up-to-date
Generation complete.