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 执行就可以
Mac下的Jenkins安装的更多相关文章
- mac下sublime text3安装SFTP及使用
mac下sublime text3安装SFTP 1.shift+command+p进入控制面板 2.输入install进入程序安装界面选择需要安装的插件(SFTP) 3.直接进行安装(需要联网) 4. ...
- mac 下用 brew 安装mongodb
转自:mac 下用 brew 安装mongodb 经过这位仁兄的文章指导,终于连上了mongodb. 启动mongo数据库,就是打开一个终端sudo mongod,然后打开另一个终端sudo mong ...
- mac下java的安装和升级以及相关环境设置
安装:brew cask install java8 如果存在多个java,可以设置JAVA_HOME指定java版本 打开终端,执行/usr/libexec/java_home -V 查看MAC下J ...
- Mac下的mongodb安装
mac下的mongodb安装主要有两种方式,一是手工安装,需在官网下载源文件,二是通过homebrew,至于homebrew不做介绍.既然是Mac系统下,我认为直接通过homebrew安装最好,省事还 ...
- mac下Spark的安装与使用
每次接触一个新的知识之前我都抱有恐惧之心,因为总认为自己没有接触到的知识都很高大上,比如上篇介绍到的Hadoop的安装与使用与本篇要介绍的Spark,其实在自己真正琢磨以后才发现本以为高大上的知识其实 ...
- Mac下anaconda的安装和基本使用
Mac下anaconda的安装和基本使用 安装 在conda官网下载安装conda. 打开terminal输入conda -V,回车显示conda的版本说明安装成功. 将conda更新到最新版本 co ...
- docker下的Jenkins安装和体验【转】
原文地址:http://blog.csdn.net/boling_cavalry/article/details/78942408 作为一款优秀的持续集成工具,jenkins在日常的项目中经常会用到, ...
- Mac 下 PostgreSQL 的安装与使用
在 mac 下,可以利用 homebrew 直接安装 PostgreSQL: 1 brew install postgresql -v 稍等片刻,PostgreSQL 就安装完成.接下来就是初始数据库 ...
- [转] Mac 下 PostgreSQL 的安装与使用
在 mac 下,可以利用 homebrew 直接安装 PostgreSQL: 1 brew install postgresql -v 稍等片刻,PostgreSQL 就安装完成.接下来就是初始数据库 ...
随机推荐
- python全栈开发day99-DRF序列化组件
1.解释器组件源码分析 https://www.processon.com/view/link/5ba0a8e7e4b0534c9be0c968 2.基于CBV的接口设计 1).django循环que ...
- nginx配置2
第四节 nginx 配置文件 1 keepalive_timeout 65; 设定保存长久连接时长 0代表禁止, 若不设置默认是75s 2keepalive_requests nu; 在一 ...
- HTML自定义滚动条(仿网易邮箱滚动条)转载
它是使用CSS中的伪元素来实现的,主要由以下三个来完成: 1. -webkit-scrollbar:定义滚动条的样式,如长宽. 2. -webkit-scrollbar-thumb:定义滚动条上滑块的 ...
- Substrings kmp
Problem Description You are given a number of case-sensitive strings of alphabetic characters, find ...
- Java常用API——时间类
前言:Java.util.*工具包中,包含了集合框架,旧集合类,事件模型,日期和时间设施,国际化和其他使用程序类 (字符串.随机数生成器和位数组) 一.日期类Date 1.概述 Date是一个薄包装类 ...
- HDU 1257 最少拦截系统 【贪心】
<题目链接> 题目大意: 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度 ...
- Django之Form组件(一)
Django之Form组件(一) Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 基本操作:字 ...
- Service Discovery And Health Checks In ASP.NET Core With Consul
在这篇文章中,我们将快速了解一下服务发现是什么,使用Consul在ASP.NET Core MVC框架中,并结合DnsClient.NET实现基于Dns的客户端服务发现 这篇文章的所有源代码都可以在G ...
- JDBC概述
什么是持久化(persistence):持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固 ...
- Linux ubantu中安装虚拟/使用环境virtualenv以及python flask框架
今天学习了python flask框架的安装过程以及使用案例,感觉网上讲的东西都没有从我们这种初学者的角度去考虑(哈哈),最后还是奉上心得: 1.安装virtualenv $ sudo apt-get ...