2017-11-05 12 views
2

아마존 리눅스를 사용하고 있습니다. 나는 보스 사용자가 만든 및 해당 사용자로 로그인 한 후, 나는 "파이어 폭스"내 길에되도록

[[email protected] ~]$ sudo su - jboss 
[sudo] password for myuser: 
Last login: Sun Nov 5 18:19:43 UTC 2017 on pts/0 
... 
[[email protected] ~]$ which firefox 
/usr/local/bin/firefox 
[[email protected] ~]$ echo $PATH 
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/maven/bin:/usr/java/latest/bin:/home/jboss/.local/bin:/home/jboss/bin 

공지 그들의 $ 경로를 볼 수 있습니다. Jenkins 사용자가 실행중인 Jenkins WAR 파일이 있고 Jenkins 작업에서 스크립트 (빌드 단계 게시)가 있습니다. 해당 스크립트를 실행하는 경우 그러나, 젠킨스의 $ PATH는 제이보스 사용자로 젠킨스를 실행하는 경우는 $ PATH에 맞게 때 ... 나는 $ 경로를 얻는 방법

+ whoami 
jboss 
+ which firefox 
which: no firefox in (/usr/local/maven/bin:/usr/java/latest/bin:/usr/java/latest/bin:/sbin:/usr/sbin:/bin:/usr/bin) 

을은 JBoss 사용자와 일치하지 않는 것 터미널에 jboss로 로그인 했습니까?

답변

0

이 문제는 전세계에 Firefox가 설치되어 있지 않기 때문에 발생합니다. Jenkins 사용자와 Ubuntu 사용자에게 동일한 문제가있었습니다. 우분투 사용자의 경우 npm을 설치했으며 동일한 오류가 있어도 jenkins에서 npm을 가져 오려고했습니다. 다른 사용자에게 동일한 패키지를 사용하려는 경우 패키지 또는 소프트웨어를 전 세계적으로 설치하십시오.

+0

감사하지만 문제를 해결하는 방법을 모르겠다. Jenkins가 실행중인 사용자가 설정되어있는 곳에서 동일한 $ PATH를 읽도록 Jenkins를 구성하는 방법은 무엇입니까? – Dave

1

당신은 정말로 말하지 않았으므로 jboss 사용자로 Jenkins를 사용하고 있다고 가정합니다. 그렇지 않으면 실제 환경과 일치 할 것이라고 기대할 수 없습니다.

대화식 세션 대 비 대화식 세션의 경우로드되는 환경이 다릅니다. 그 모든 것을 설명하려고 시도하지 않고, 빠른 구글은 this page을 발견했습니다. 이것은 무슨 일이 일어나고 있는지 설명하는 것 같습니다.

Jenkins가 작업을 실행 중일 때 비 대화식 또는 로그인하지 않은 쉘이 생성되어 환경이 달라질 수 있습니다. 파이어 폭스는 로그인 셸에서만 필요하다는 것은 의미가 있습니다 (일반적으로 말하면). 하지만이 파일을 변경해야하는 경우 링크 된 기사에서 언급 한 파일 중 경로에 firefox를 추가하는 파일이 무엇인지 확인할 수 있으며 해당 파일을 원본 파일로 가져올 수 있습니다 (source /path/to/.profile_file)

선택적으로 Jenkins를 다른 사용자 또는 다른 방법은 작업을 시작할 때 PATH를 수정하고 필요한 경로를 환경에 추가하는 것입니다.

+0

젠킨스 셸에서 "whoami"를 실행하면 사용자가 누구인지 밝힐 수 있습니다. 어쨌든, 당신이 참조한 링크를 읽었지 만, 다른 홈 스크립트에 대한 일반적인 토론은 끝내지 만 Jenkins가 실행중인 JBoss 사용자로부터 PATH를 상속받는 방법에 대해서는 언급하지 않습니다. – Dave

+0

아. 권리. 그것을 놓쳤습니다. 파이어 폭스를 경로에 추가하는 사용자의 홈 디렉토리에있는 파일을 찾으십시오. 그 중 하나가 아닌 로그인 껍질에 대한 소스를 받고, 그것은 보인다. 대화 형 셸에서만 가능합니다. 젠킨스 작업에서 그 파일을 가져와야하며 경로를 수정해야합니다. –

+0

또는 firefox를 추가하는 행을 비 로그인 셸용 소스 파일 중 하나에 대한 경로로 이동하십시오. –