Jenkins踩坑記錄:環境變數PATH沒有/usr/local/bin
阿新 • • 發佈:2021-07-22
好久沒用Jenkins就,今天寫了個介面和UI自動化測試框架,想在Jenkins上執行下,在執行安裝依賴外掛時出現了一個錯誤
pip3.9: command not found
,what?我沒裝pip?不可能呀,第一反應是在命令列執行下
沒問題呀,我本機安裝了pip了呀,頓時覺得事情沒有那麼簡單
根據我多年經驗,我當時反應就是檢視pip的環境變數
chenshiengdeMBP:~ chenshifeng$ which pip3.9
/usr/local/bin/pip3.9
然後列印Jenkins的環境變數,在Jenkins Execute shell是輸入echo $PATH
命令列印環境變數為:
$ /bin/sh -xe /var/folders/p0/3_7fwrvx6n3ftpfd4wjb01300000gn/T/jenkins7083867037148431594.sh
+ echo /usr/bin:/bin:/usr/sbin:/sbin
/usr/bin:/bin:/usr/sbin:/sbin
Finished: SUCCESS
眼尖的我突然發現,Jenkins裡的環境變數沒有/usr/local/bin
路徑!!!
總算找到了原因,在網上看到,出於某種原因,Jenkins在連線到從屬伺服器時不會將/usr /local/bin保留在PATH中。
OK ,雖然具體啥原因我也不曉得,那就想辦法解決吧。。
然後,我找到了以下3中方法,有其他方法的大神請評論區留言,感激不盡~
1、直接在Jenkins Execute shell 新增PATH="/usr/local/bin:${PATH}"
執行
$ /bin/sh -xe /var/folders/p0/3_7fwrvx6n3ftpfd4wjb01300000gn/T/jenkins2590228410742446096.sh
+ PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
+ echo /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Finished: SUCCESS
成功!
2.在節點配置上新增環境變數
Manage Jenkins→Configure System→Environment variables
3.在使用者變數資料夾.bash_profile 中新增命令
PATH="/usr/local/bin:${PATH}"