1. 程式人生 > 其它 >Jenkins踩坑記錄:環境變數PATH沒有/usr/local/bin

Jenkins踩坑記錄:環境變數PATH沒有/usr/local/bin

好久沒用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}"