Jenkins không sử dụng ngôn ngữ của hệ thống


10

Tôi có một hành vi thú vị ở Jenkins.
Vỏ của Jenkins không sử dụng hệ thống của tôi.

Jenkins chạy như người dùng jenkinstrên hệ thống của tôi.

Đăng nhập như jenkinsthông qua SSH:

locale hiển thị:

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

envchương trình LANGLANGUAGEbiến:

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

id hiển thị ID của người dùng:

uid = 1008 (jenkins) gid = ...

Đã nhập các lệnh trên vào một vỏ công việc jenkins:

locale hiển thị:

LANG =
LANGUAGE =
LC_CTYPE = "POSIX",
v.v ...

envkhông không hiển thị LANGLANGUAGEbiến

id hiển thị ID của người dùng (như mong đợi):

uid = 1008 (jenkins) gid = ...

Tập tài liệu:

/etc/profile chứa đựng:

xuất LANG = en_US.UTF-8
xuất LANGUAGE = en_US: en

/etc/default/locale chứa đựng:

xuất LANG = en_US.UTF-8
xuất LANGUAGE = en_US: en

tập lệnh khởi động /etc/init.d/jenkinsnên xuất địa phương của hệ thống:

# môi trường tải
nếu [-r / etc / default / locale]; sau đó
. / etc / default / locale
xuất LANG LANGUAGE
elif [-r / etc / môi trường]; sau đó
. / etc / môi trường
xuất LANG LANGUAGE
fi


Tất nhiên tôi đã khởi động lại sau khi sửa đổi các ngôn ngữ;)

Apache cũng sử dụng các ngôn ngữ
của hệ thống Hệ thống của tôi là bản cài đặt Ubuntu 14.04.
Tôi đã bỏ lỡ để kiểm tra cái gì khác?

Cảm ơn bạn đã đọc!
Tôi hy vọng ai đó có thể giúp đỡ :)


Jenkins dường như thiết lập lại tất cả các biến môi trường trong shell shell. Kiểm tra các cài đặt dự án. Ngoài ra còn có một plugin env-tiêm .
jofel

Giải pháp của bạn phải là một câu trả lời, không phải là một chỉnh sửa cho câu hỏi của bạn ...
jasonwryan

Câu trả lời:


10

Giải pháp:

Điều này xảy ra bởi vì chủ Jenkins kết nối với máy nô lệ thông qua non-interactiveshell, do đó /etc/profilekhông được thực thi và cũng /etc/default/localekhông có bất kỳ ảnh hưởng nào.
non-interactivevỏ thường được sử dụng ~/.bashrc.

Gần như tất cả các chi tiết về chủ đề này có thể được tìm thấy trên Askubfox:
https://askubfox.com/questions/247738/why-is-etc-profile-not-invoking-for-non-login-shells

thêm vào ~/.bashrc:

xuất LANG = en_US.UTF-8
xuất LANGUAGE = en_US: en


đã làm điều đó cho tôi.

"Vấn đề nô lệ" này cũng được thảo luận tại đây:
https://groups.google.com/forum/#!topic/jenkinsci-users/hscDs4pKIoU https://groups.google.com/forum/#!topic/jenkinsci-users / g0fNnDltqeM Trân trọng, xin lỗi

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.