Mam ciekawe zachowanie w Jenkins.
Powłoka Jenkinsa nie używa ustawień regionalnych moich systemów.
Jenkins działa jako użytkownik jenkins
w moim systemie.
Zalogowany jako jenkins
przez SSH:
locale
wystawiany:
LANG = en_US.UTF-8
LANGUAGE = en_US: en
LC_CTYPE = "en_US.UTF-8"
itd ...
env
pokazuje LANG
i LANGUAGE
zmienne:
LANG = en_US.UTF-8
LANGUAGE = en_US: en
id
pokazuje identyfikator użytkownika:
uid = 1008 (jenkins) gid = ...
Wprowadzono powyższe polecenia do powłoki zadania Jenkinsa:
locale
wystawiany:
LANG =
LANGUAGE =
LC_CTYPE = „POSIX”
itp ...
env
czy nie pokazać LANG
i LANGUAGE
zmienne
id
pokazuje identyfikator użytkownika (zgodnie z oczekiwaniami):
uid = 1008 (jenkins) gid = ...
pliki:
/etc/profile
zawiera:
eksport LANG = en_US.UTF-8
eksport LANGUAGE = en_US: en
/etc/default/locale
zawiera:
eksport LANG = en_US.UTF-8
eksport LANGUAGE = en_US: en
skrypt startowy /etc/init.d/jenkins
powinien wyeksportować ustawienia regionalne systemu:
# ładuje środowiska,
jeśli [-r / etc / default / locale]; potem
. / etc / default / locale
export LANG LANGUAGE
elif [-r / etc / environment]; potem
. / etc / environment
export LANG LANGUAGE
fi
Oczywiście zrestartowałem się po modyfikacji ustawień regionalnych;)
Apache używa także ustawień narodowych
systemu. Mój system to instalacja Ubuntu 14.04.
Czy przegapiłem sprawdzić coś jeszcze?
Dziękuję za przeczytanie!
Mam nadzieję, że ktoś może pomóc :)
Odpowiedzi:
Rozwiązanie:
Dzieje się tak, ponieważ mistrz Jenkins łączy się z maszyną podrzędną za pośrednictwem
non-interactive
powłoki, więc/etc/profile
nie jest wykonywany, a także/etc/default/locale
nie ma żadnego efektu.non-interactive
muszle są zazwyczaj za pomocą~/.bashrc
.Prawie wszystkie szczegóły na ten temat można znaleźć na askubuntu:
/ubuntu/247738/why-is-etc-profile-not-invoked-for-non-login-shells
dodając do
~/.bashrc
:zrobił to dla mnie.
Ten „problem z niewolnikami” jest również omawiany tutaj:
https://groups.google.com/forum/#!topic/jenkinsci-users/hscDs4pKIoU https://groups.google.com/forum/#!topic/jenkinsci-users / g0fNnDltqeM Z poważaniem, whosit
źródło