ジェンキンスで面白い振る舞いをした。
ジェンキンスのシェルは私のシステムロケールを使用しません。
Jenkinsは、システムでユーザーjenkins
として実行されます。
jenkins
としてログイン:表示されるlocale
:
LANG = en_US.UTF-8
LANGUAGE = en_US:en
LC_CTYPE = "en_US.UTF-8"
等...
env
は、LANG
およびLANGUAGE
変数を示します。
LANG = en_US.UTF-8
LANGUAGE = en_US:en
id
はユーザーのIDを示します。
uid = 1008(jenkins)gid = ...
表示されるlocale
:
LANG =
言語=
LC_CTYPE = "POSIX"
等...
env
はnotLANG
およびLANGUAGE
変数を表示します
id
はユーザーのIDを示します(予想どおり):
uid = 1008(jenkins)gid = ...
/etc/profile
に含まれるもの:
lANG = en_US.UTF-8をエクスポート
エクスポートLANGUAGE = en_US:en
/etc/default/locale
に含まれるもの:
lANG = en_US.UTF-8をエクスポート
エクスポートLANGUAGE = en_US:en
起動スクリプト/etc/init.d/jenkins
はシステムのロケールをエクスポートする必要があります:
#ロード環境
if [-r/etc/default/locale];その後
。/etc/default/locale
LANG言語をエクスポート
Elif [-r/etc/environment];その後
。/etc/environment
LANG言語をエクスポート
fi
もちろん、ロケールを変更した後、再起動しました;)
Apacheはシステムのロケールも使用します
私のシステムはUbuntu 14.04インストールです。
何か他のものをチェックするのを逃しましたか?
読んでくれてありがとう!
誰かが助けてくれることを願っています:)
これは、Jenkinsマスターがnon-interactive
シェルを介してスレーブマシンに接続するため、/etc/profile
は実行されず、/etc/default/locale
も影響を与えないために発生します。non-interactive
シェルは通常~/.bashrc
を使用しています。
このトピックに関するほぼすべての詳細は、askubuntuにあります。
https://askubuntu.com/questions/247738/why-is-etc-profile-not-invoked-for-non-login-shells
_~/.bashrc
への追加:
lANG = en_US.UTF-8をエクスポート
エクスポートLANGUAGE = en_US:en
私のためにそれをやりました。
この「スレーブの問題」についてもここで説明します。
https://groups.google.com/forum/#!topic/jenkinsci-users/hscDs4pKIohttps://groups.google.com/forum/# !topic/jenkinsci-users/g0fNnDltqeM よろしく、whosit