在Ubuntu 18.04 LTS中安装Jenkins失败(无法启动LSB:启动时启动Jenkins.)

Gas*_*eng 17 ubuntu jenkins

[症状]

  • 使用官方步骤安装Jenkins,但失败并显示错误消息无法启动LSB:在启动时启动Jenkins.
  • 重现步骤

    wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
    sudo apt-add-repository "deb https://pkg.jenkins.io/debian-stable binary/"
    sudo apt install jenkins
    
    Run Code Online (Sandbox Code Playgroud)
  • 控制台日志

    gaspar@jenkins:~$ sudo apt install jenkins
    ...
    Setting up default-jre-headless (2:1.9-62ubuntu2) ...
    Setting up jenkins (2.107.2) ...
    Job for jenkins.service failed because the control process exited with error code.
    See "systemctl status jenkins.service" and "journalctl -xe" for details.
    invoke-rc.d: initscript jenkins, action "start" failed.
    ? jenkins.service - LSB: Start Jenkins at boot time
       Loaded: loaded (/etc/init.d/jenkins; generated)
       Active: failed (Result: exit-code) since Thu 2018-04-19 10:03:05 UTC; 9ms ago
         Docs: man:systemd-sysv-generator(8)
      Process: 27282 ExecStart=/etc/init.d/jenkins start (code=exited, status=7)
    Apr 19 10:03:03 evt-jenkins systemd[1]: Starting LSB: Start Jenkins at boot time...
    Apr 19 10:03:03 evt-jenkins jenkins[27282]:  * Starting Jenkins Automation Server jenkins
    Apr 19 10:03:03 evt-jenkins su[27313]: Successful su for jenkins by root
    Apr 19 10:03:03 evt-jenkins su[27313]: + ??? root:jenkins
    Apr 19 10:03:03 evt-jenkins su[27313]: pam_unix(su:session): session opened for user jenkins by (uid=0)
    Apr 19 10:03:03 evt-jenkins su[27313]: pam_unix(su:session): session closed for user jenkins
    Apr 19 10:03:05 evt-jenkins jenkins[27282]:    ...fail!
    Apr 19 10:03:05 evt-jenkins systemd[1]: jenkins.service: Control process exited, code=exited status=7
    Apr 19 10:03:05 evt-jenkins systemd[1]: jenkins.service: Failed with result 'exit-code'.
    Apr 19 10:03:05 evt-jenkins systemd[1]: Failed to start LSB: Start Jenkins at boot time.
    dpkg: error processing package jenkins (--configure):
     installed jenkins package post-installation script subprocess returned error exit status 1
    ...
    
    Run Code Online (Sandbox Code Playgroud)

[环境]

  • Ubuntu 18.04 LTS Beta2
  • 詹金斯2.107.2

Gas*_*eng 39

[根本原因]

  • Ubuntu 18.04 LTS使用Java 9作为默认java
  • Jenkins 2.107.2仍然使用Java 8

[解]

  • 在安装Jenkins之前安装Java 8

    sudo add-apt-repository ppa:webupd8team/java
    sudo apt install oracle-java8-installer
    wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
    sudo apt-add-repository "deb https://pkg.jenkins.io/debian-stable binary/"
    sudo apt-get update
    sudo apt install jenkins
    
    Run Code Online (Sandbox Code Playgroud)

  • 谢谢你。我改用了 openjdk-8-jre 并且它起作用了 (3认同)
  • 添加apt-get repo后,别忘了更新`sudo apt-get update`,否则找不到 (3认同)

Ift*_*med 12

  1. 安装Java 8
sudo apt install openjdk-8-jre
Run Code Online (Sandbox Code Playgroud)
  1. 将默认Java版本设置为Java 8
sudo update-alternatives --config java
Run Code Online (Sandbox Code Playgroud)
  1. 添加密钥
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
Run Code Online (Sandbox Code Playgroud)
  1. 添加资料库
sudo apt-add-repository "deb https://pkg.jenkins.io/debian-stable binary/"
Run Code Online (Sandbox Code Playgroud)
  1. 安装詹金斯
sudo apt install jenkins
Run Code Online (Sandbox Code Playgroud)

  • `oracle-java8-installer` 对我不起作用,我的系统中有更高版本的 java,通过 `sudo update-alternatives --config java` 我管理要使用的版本。 (2认同)