专栏首页游戏杂谈Mac下的Jenkins安装

Mac下的Jenkins安装

安装方式

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 执行就可以

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Perl遍历目录

    1、默认activePerl下的采用的编码是gbk,所以需要将字符串转为gbk才不会显示乱码

    meteoric
  • socket.io的websocket示例

    写了一个简单的demo,直接上代码吧。用的时候注意一下版本号,可能 socket.io 的 API 有修改~

    meteoric
  • Socket.IO + Express实现的跨浏览器、子域的聊天室

    实例中用到了(实例在Windows XP下运行):Node.js、Socket.IO、Express.js、jade、stylus

    meteoric
  • FastDFS的使用

    FastDFS安装(http://blog.csdn.net/LoveCarpenter/article/details/75913329)

    用户5927264
  • 简单分析下 Node.js 关于集群的那些事

    nodejs 原有版本中没有实现多线程,为了充分利用多核 cpu,可以使用子进程实现内核的负载均衡。

    coder_koala
  • 在Tomcat中部署war

    用户1258909
  • 机器学习算法之欠拟合和过拟合

    "If you have a dream, don’t just sit there. Gather courage to believe that you c...

    小闫同学啊
  • springboot(20)Actuator使用

    IT故事会
  • Linux目录的作用【值得收藏】

    /dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt /etc :...

    吴柯
  • 人工智能之机器学习CART算法解析

      人工智能之机器学习主要有三大类:1)分类;2)回归;3)聚类。今天我们重点探讨一下CART算法。

    数据星河

扫码关注云+社区

领取腾讯云代金券