Jenkinsはシステムのロケールを使用しません。

Jenkinsはシステムのロケールを使用しません。

Jenkinsで興味深い動作を発見しました。
Jenkinsのシェルは私のシステムロケールを使用しません。

Jenkinsはjenkins私のシステムでユーザーとして実行されます。

SSH経由でログインjenkins:

locale示す:

LANG= en_US.UTF- 8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
など...

envディスプレイLANGLANGUAGE変数:

LANG=en_US.UTF-8
LANGUAGE=en_US:en

idユーザーIDの表示:

uid=1008(ジェンキンス) gid=...

Jenkinsジョブシェルに上記のコマンドを入力します。

locale示す:

LANG =
LANGUAGE =
LC_CTYPE = "POSIX"
など...

envするいいえ表示LANGLANGUAGE変数

idユーザーIDの表示(予想どおり):

uid=1008(ジェンキンス) 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 LANGUAGE
elif [-r /etc/environment]
; /etc/environment
LANG LANGUAGE
fi エクスポート


もちろん、ロケールを変更して再起動しました。)

Apacheもシステムのロケールを使用します。
私のシステムはUbuntu 14.04インストールです。
私が他のものをチェックするのを見逃しましたか?

読んでくれてありがとう!
誰かが助けることができることを願っています:)

答え1

解決策:

これは、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/hscDs4pKIoU https://groups.google.com/forum/#!topic/jenkinsci-users/g0fNnDltqeM よろしくお願いします。

関連情報