安装方式

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

Mac下的Jenkins安装的更多相关文章

  1. mac下sublime text3安装SFTP及使用

    mac下sublime text3安装SFTP 1.shift+command+p进入控制面板 2.输入install进入程序安装界面选择需要安装的插件(SFTP) 3.直接进行安装(需要联网) 4. ...

  2. mac 下用 brew 安装mongodb

    转自:mac 下用 brew 安装mongodb 经过这位仁兄的文章指导,终于连上了mongodb. 启动mongo数据库,就是打开一个终端sudo mongod,然后打开另一个终端sudo mong ...

  3. mac下java的安装和升级以及相关环境设置

    安装:brew cask install java8 如果存在多个java,可以设置JAVA_HOME指定java版本 打开终端,执行/usr/libexec/java_home -V 查看MAC下J ...

  4. Mac下的mongodb安装

    mac下的mongodb安装主要有两种方式,一是手工安装,需在官网下载源文件,二是通过homebrew,至于homebrew不做介绍.既然是Mac系统下,我认为直接通过homebrew安装最好,省事还 ...

  5. mac下Spark的安装与使用

    每次接触一个新的知识之前我都抱有恐惧之心,因为总认为自己没有接触到的知识都很高大上,比如上篇介绍到的Hadoop的安装与使用与本篇要介绍的Spark,其实在自己真正琢磨以后才发现本以为高大上的知识其实 ...

  6. Mac下anaconda的安装和基本使用

    Mac下anaconda的安装和基本使用 安装 在conda官网下载安装conda. 打开terminal输入conda -V,回车显示conda的版本说明安装成功. 将conda更新到最新版本 co ...

  7. docker下的Jenkins安装和体验【转】

    原文地址:http://blog.csdn.net/boling_cavalry/article/details/78942408 作为一款优秀的持续集成工具,jenkins在日常的项目中经常会用到, ...

  8. Mac 下 PostgreSQL 的安装与使用

    在 mac 下,可以利用 homebrew 直接安装 PostgreSQL: 1 brew install postgresql -v 稍等片刻,PostgreSQL 就安装完成.接下来就是初始数据库 ...

  9. [转] Mac 下 PostgreSQL 的安装与使用

    在 mac 下,可以利用 homebrew 直接安装 PostgreSQL: 1 brew install postgresql -v 稍等片刻,PostgreSQL 就安装完成.接下来就是初始数据库 ...

随机推荐

  1. Python_subprocess模块

    subprocess中,允许生成新的进程,连接到input/output/error管道,并获取他们的返回(状态)码,主要用于替换os.system/os.spawn*几个旧的模块和方法 subpro ...

  2. Codeforces 822E Liar dp + SA (看题解)

    Liar 刚开始感觉只要开个dp[ i ][ j ][ 0 / 1 ]表示处理了s的前 i 个用了 k 段, i 是否是最后一段的最后一个字符 的 t串最长匹配长度, 然后wa24, 就gg了.感觉这 ...

  3. web移动端浮层滚动阻止window窗体滚动JS/CSS处理

    CSS代码: .noscroll, .noscroll body { overflow: hidden; } .noscroll body { position: relative; } JS代码: ...

  4. Qt界面设计基础

    一.安装Qt相关基本组件: 在ubuntu上安装,可以直接使用如下的命令来安装: sudo apt-get install ubuntu-sdk 详细的安装方法可以参考这篇文章:https://blo ...

  5. js判断上传图片文件大小,尺寸,格式

    /** * 文件宽高 * @param eventId id * @param w 宽度 * @param h 高度 * @param callback 回调函数这里判断图片像素的方法是异步的,所以需 ...

  6. 使用 linux 的 epoll 的套接字

    1. 代码: import socket import selectors #IO多路复用的选择模块 epoll_selector = selectors.EpollSelector() 实例化一个和 ...

  7. python mysql中文乱码

    问题: MySQLdb存入数据库后,在命令行查询 "select * from ip;",其中的中文都是乱码的. 但是通过python 执行 "select * from ...

  8. [洛谷P1063][NOIP2006]能量项链

    区间DP模板题 题目描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子,前一颗 ...

  9. Linux 中 Windows 中文乱码

    Linux 下 Windows 源代码中文乱码 由于 windows 和 linux 对文本的编码方式不同,所以经常会有 windows 中生成的文本在 linux 中打开乱码的情况. 比如: 我面临 ...

  10. ContextRefreshedEvent事件使用注意事项(Spring)

    0 概述ContextRefreshedEvent 事件会在Spring容器初始化完成会触发该事件.我们在实际工作也可以能会监听该事件去做一些事情,但是有时候使用不当也会带来一些问题. 1 防止重复触 ...