UTF-8ロケールの設定

一部のRubyアプリケーションを実行するには、UTF-8ロケールが必要です。たとえば、RubyGemsおよびruby/specにはこのようなロケールが必要であることがわかりました。

これは次の場合には必要ありません。$LANG環境変数がすでに設定されている場合と:

locale

="C"や警告が表示されない場合です。かわりに、すべての値は"en_US.UTF-8"または.UTF-8の他のリージョンであることが必要です。

Fedoraベース: RHEL、Oracle Linuxなど

export LANG=en_US.UTF-8

Debianベース: Ubuntuなど

Ubuntu

locale-genのUbuntuバージョンでは引数がサポートされるため簡単です:

sudo apt-get install -y locales
sudo locale-gen en_US.UTF-8
export LANG=en_US.UTF-8

Ubuntu以外

Debianおよびその他の非Ubuntuでは、locale-gen引数がサポートされません。かわりに、/etc/locale.genを変更する必要があります:

# Uncomment the en_US.UTF-8 line in /etc/locale.gen
sudo sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen

# locale-gen generates locales for all uncommented locales in /etc/locale.gen
sudo locale-gen
export LANG=en_US.UTF-8

Dockerfileの場合:

# Uncomment the en_US.UTF-8 line in /etc/locale.gen
RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen
# locale-gen generates locales for all uncommented locales in /etc/locale.gen
RUN locale-gen
ENV LANG=en_US.UTF-8