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

转载于:https://www.cnblogs.com/meteoric_cry/p/8819586.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/452040.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Order By 排序条件中带参数的写法(Oracle数据库、MyBatis)

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 sortWay 是参数。 当sortWay 为 llpx 就 ORDER BY FORMAT ASC,为 btypx 就ORDER BY BID DESC ,为 zhpx 就 ORDE…

拼凑代码与编程

拼凑代码与编程(Hacking Vs. Programming)之间有什么不同?我听说过的一个观点是骇客可以在短时间内编许多代码,但是一旦发生变更,这些代码就要完全重写。而程序员也许会花更多的时间来编码,但发生变化的时候…

实体间的联系

(1)两个实体型之间的联系: ①一对一联系(1∶1) ②一对多联系(1∶n) ③多对多联系(m∶n) (2)两个以上的实体型之间的联系: 一般地…

【文章】孝心无价 作者:毕淑敏

我不喜欢一个苦孩子求学的故事。家庭十分困难,父亲逝去,弟妹嗷嗷待哺,可他大学毕业后,还要坚持读研究生,母亲只有去卖血……我以为那是一个自私的学子。求学的路很漫长,一生一世的事业,何必太在…

git源码安装

安装依赖yum -y install perl-ExtUtils-MakeMaker tcl libcurl-devel curl-devel expat-devel yum-y install gettext-devel openssl-devel zlib-devel libcurl4-openssl-dev xmlto yum -y install asciidoc docbook2X openjade texinfo perl-XML-SAX nss curlcd /usr/bin…

chrome 开启 JSONview 方法,让json数据格式化显示

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 在浏览器上作接口测试的时候看到json 格式的数据是密密麻麻的一片,眼睛都花了.. 如: 设置下chrome 浏览器就好了…

联系的度

联系的度:参与联系的实体型的数目 2个实体型之间的联系度为2,也称为二元联系; 3个实体型之间的联系度为3,称为三元联系; N个实体型之间的联系度为N,也称为N元联系

Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate

安装jsonpath:>pip install jsonpath 报错:Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host‘pypi.org’, port443): Max retries exceeded with url: /simple/p…

百度贴吧10亿量级LAMP架构分享

导读:天下武功,唯快不破。对日益激烈的互联网竞争你所拥有的利器就是快!本文来自百度贴吧的LAMP解决方案介绍,摘录至此旨在研究分享,看看其是如何全面支持快速迭代的。 文章内容如下: 贴吧是功能性产品&a…

python基础-PyYaml操作yaml文件

yaml语法 格式 它的基本语法规则如下 大小写敏感 使用缩进表示层级关系 缩进时不允许使用Tab键,只允许使用空格。 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可 YAML 支持的数据结构有三种 1、对象:键值对的集合,又称为映…

N1CTF 塞题vote分析

N1CTF 塞题vote分析:这个题是一个uaf的漏洞题,我们先看看漏洞(如下图),这两部分是很明显的对比的啊。当单独的一个count数组的数据和堆里的数据相同时候,就会释放堆,堆释放后的count还会有指针指…

String.valueOf()方法与toString()方法的区别

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. 两者都是把ObJect对象转化为String 类型。 2.string.valueof()方法有作非空判断,在内部也是调用的toString()方法&#…

网络爬虫--11.XPath和lxml

文章目录一. XML1. XML 和 HTML 的区别2. XML文档示例3. HTML DOM 模型示例4. XML的节点关系二. 什么是XPath?1. 选取节点2. 谓语(Predicates)3. 选取未知节点4. 选取若干路径5. XPath的运算符三. lxml库1. 初步使用2. 文件读取四. XPath实例…

实体与属性间的划分原则

为了简化E-R图的处置,现实世界的事物能作为属性对待的,尽量作为属性对待。 两条准则: (1)作为属性,不能再具有需要描述的性质。属性必须是不可分的数据项,不能包含其他属性。 (2&…

编程开发之--java多线程学习总结(5)

4、对继承自Runnable的线程进行锁机制的使用 package com.lfy.ThreadsSynchronize;import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock;public class TicketSellSolution4 implements Runnable {private static int num 50;//创建一个…

软件测试不是一个功能

今天在工作中我对一个同事说,PyDev 2.5.0现在对TDD(测试驱动开发)提供了很酷的支持了。我并不是一个对TDD很痴迷的倡导者,对其它事物也一样,但仍不免激起了一场讨论。这个家伙,让我们暂叫他约翰&#xff0c…

Linux 操作系统基础知识

1.操作系统总体介绍 •CPU: 就像人的大脑,主要负责相关事情的判断以及实际处理的机制。查询指令: cat /proc/cpuinfo•内存: 大脑中的记忆区块,将皮肤、眼睛等所收集到的信息记录起来的地方,以供CPU进行判断…

Transaction 那点事儿,Spring事务管理

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 Transaction 也就是所谓的事务了,通俗理解就是一件事情。从小,父母就教育我们,做事情要有始有终&…

网络爬虫--12.【XPath实战】获取百度贴吧中的图片

用XPath来做一个简单的爬虫,我们尝试爬取某个贴吧里的所有帖子,并且将该这个帖子里每个楼层发布的图片下载到本地。 #codingutf-8 import requests from lxml import etree import jsonclass Tieba:def __init__(self,tieba_name):self.tieba_name tie…

合并分ER图产生的冲突

合并分E-R图 各个局部应用所面向的问题不同,各个子系统的E-R图之间必定会存在许多不一致的地方,称之为冲突。 子系统E-R图之间的冲突主要有三类: ①属性冲突 ②命名冲突 ③结构冲突①属性冲突 属性域冲突,即属性值的类型、取值范围…