我让Jenkins在Mac Mini上运行。最近,我添加了一个外部硬盘驱动器,并将我的詹金斯数据移动到了该硬盘驱动器。到现在为止还挺好。一切正常。 但是昨天我更新到了Catalina,现在詹金斯将无法开始。如果我将数据移回Mac mini硬盘驱动器,它将开始没有问题。我想这是一个权利问题,但看来我拥有所有必要的权利。
有人可以帮忙吗?
一些信息... -在Mac mini上,只有一个用户:OLAV -Jenkins使用〜/ Library / LaunchAgents /中的plist文件启动(在用户目录中) -Jenkins的启动过程如下:launchctl load〜/ Library / LaunchAgents / org.jenkins-launch.plist
<key>EnvironmentVariables</key>
<dict>
<key>JENKINS_HOME</key>
<string>/Volumes/MacMiniEX/.jenkins</string>
</dict>
<key>Label</key>
<string>org.jenkins-launch</string>
<key>ProgramArguments</key>
<array>
<string>/usr/libexec/java_home</string>
<string>-v</string>
<string>1.8</string>
<string>--exec</string>
<string>java</string>
<string>-jar</string>
<string>/Applications/jenkins/jenkins.war</string>
<string>--httpListenAddress=0.0.0.0</string>
<string>--httpPort=7070</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>UserName</key>
<string>Olav</string>
<key>StandardOutPath</key>
<string>/Users/Olav/desktop/stdout.log</string>
<key>StandardErrorPath</key>
<string>/Users/Olav/desktop/error.log</string>
2020-04-16 10:48:43.562 + 0000 [id = 1]信息org.eclipse.jetty.util.log.Log#initialized:正在记录 已将@ 331ms初始化为org.eclipse.jetty.util.log.JavaUtilLog 2020-04-16 10:48:43.678 + 0000 [id = 1] INFO winstone.Logger#logInternal: 开始从战争文件中提取2020-04-16 10:48:43.705 + 0000 [id = 1]警告winstone.Logger#logInternal:无法删除目录 /Volumes/MacMiniEX/.jenkins/war java.nio.file.FileSystemException: /Volumes/MacMiniEX/.jenkins/war:不允许在以下位置进行操作 sun.nio.fs.UnixException.translateToIOException(UnixException.java:91) 在 sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102) 在 sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107) 在 sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemProvider.java:244) 在 sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:108) 在java.nio.file.Files.deleteIfExists(Files.java:1165)在 winstone.HostConfiguration.deleteRecursive(HostConfiguration.java:330) 在winstone.HostConfiguration.getWebRoot(HostConfiguration.java:265) 在winstone.HostConfiguration。(HostConfiguration.java:84)在 winstone.HostGroup.initHost(HostGroup.java:66)在 winstone.HostGroup。(HostGroup.java:45)在 winstone.Launcher。(Launcher.java:167)在 winstone.Launcher.main(Launcher.java:355)在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)位于 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:498)在 Main.main(Main.java:151)的Main._main(Main.java:375)
答案 0 :(得分:1)
我目前正在调查完全相同的问题。
我还没有合适的解决方案,但是我可以添加以下内容:
如果从“终端”命令行运行,则会收到权限提示。允许他们,詹金斯就会开始。从长远来看并不理想,因为每次重新启动包装盒时都需要执行该命令,但这有助于缩小问题的范围:
/ Library / Application \ Support / Jenkins / jenkins-runner.sh
(当我遇到自制软件安装问题时,我运行了本地的Jenkins安装程序)
答案 1 :(得分:0)
是的!谢谢@chrisoneiota提供的线索。卡塔琳娜(Catarina)的SIP阻止詹金斯未经批准使用外部硬盘驱动器,并且从不提示获得批准。所以-
对于通过自制程序安装的jenkins:
brew services jenkins-lts stop
open /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/
打开取景器窗口java_home
从查找器窗口拖放到允许的列表中。brew services jenkins-lts start
您现在应该可以访问。
对我来说,关键的难题是弄清楚哪个Java可执行文件需要访问。不得不调查自制程序正在运行哪个命令(存储在/usr/local/opt/jenkins-lts/homebrew.mxcl.jenkins-lts.plist
中),该命令指向一个符号链接,而指向上面的java_home
。将符号链接添加到“安全和隐私”中无效;它必须是最终的路径。