安裝方式
1)通過命令行安裝?? brew install jenkins,可能會遇到先更新 brew 的情況? https://brew.sh/index_zh-cn;
2)通過 pkg 安裝,官方網址:https://jenkins.io/
安裝完成后,會自動打開瀏覽器 http://localhost:8080? ,然后按照提示根據自己的需求 Next 下去(最新版本的界面是中文,不用擔心看不懂)
?
?
卸載
1)命令行安裝的,請使用命令行卸載? brew uninstall jenkins
2)通過 pkg 安裝
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
sudo rm /Library/LaunchDaemons/org.jenkins-ci.plist
sudo rm -rf /Applications/Jenkins "/Library/Application Support/Jenkins" /Library/Documentation/Jenkins
sudo rm -rf /Users/Shared/Jenkins
sudo dscl . -delete /Users/jenkins
sudo dscl . -delete /Groups/jenkins
launchctl 可以理解為執行定時 任務,開機時啟動 jenkins。可以通過
sudo launchctl list | grep jenkins 來查看是否有 jenkins 服務被設置為開機啟動,實際 load、unload的是一個 plist文件
?
?
權限問題
這個就把我搞的要死要活了,網上的方法我嘗試了好多遍,就連 Jenkins 我都重新、卸載不下5遍。我決定總結一下,以防止有人再掉到坑里面了。
安裝完 Jenkins 后,它默認新建了一個用戶 jenkins,屬性 daemon 組,這個可以通過 sudo open /Library/LaunchDaemons/org.jenkins-ci.plist 進行查看。
?
?
組名 和 UserName的獲取,可以通過 shell 命令(id、whoami),也可以通過 “系統偏好設置” –> “用戶與群組” 先解鎖左下角的鎖,再選中當前用戶,右健
?
停止 Jenkins 服務
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
?
重新啟動
sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
?
如果遇到 /Library/LaunchDaemons/org.jenkins-ci.plist: Path had bad ownership/permissions
?
可以使用下面的命令來處理
sudo chown staff /Library/LaunchDaemons/org.jenkins-ci.plist
sudo chgrp test-user /Library/LaunchDaemons/org.jenkins-ci.plist
sudo chmod 600 /Library/LaunchDaemons/org.jenkins-ci.plist
再次運行 (#注意下面,沒有加 sudo,而且當前 shell 的登錄用戶必須是 test-user)
launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
?
查看文件的相關屬性
$ sudo ls –l /Library/LaunchDaemons/org.jenkins-ci.plist
$ whoami
進行對比,當前登錄的 shll, 是否有權限進行操作,默認之前是 jenkins 用戶,重啟電腦看是否 Jenkins 能正常啟動
?
如果重啟后,訪問 localhost:8080 失效,可以使用手工啟動
zsh /Library/Application\ Support/Jenkins/jenkins-runner.sh
確認是否加入到開機啟動,可以使用上文中的命令
?
?
總結一下,主要是因為 sudo 這個命令有安全限制的問題,所以才會遇到無法執行“sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist”
最初不知道原因,傻不拉嘰的卸載、重裝N次,發現不行。在 Jenkins 中添加執行 Shell,輸入 echo $PATH,看控制臺上的輸出,發現跟在 shell 命令中 echo $PATH,完全不一樣。
最后,使用使用修改plist的用戶名的帳號,打開 shell 并執行“launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist” 就搞定了。
?
修改? org.jenkins-ci.plist 文件后,該文件所有者變成 staff/test-user,而使用 sudo 《超級用戶執行》居然會提示沒有權限,蛋疼。用 test-user 執行就可以