CentOS 上安装或启动 Jenkins 失败,可按下列顺序排查与修复
一 快速自检清单
java -version;如版本过低,安装并切换到 java-11-openjdk(或更高)。systemctl status jenkins -l、journalctl -xeu jenkins、tail -n100 /var/log/jenkins/jenkins.log,定位具体报错。ss -tulpen | grep 8080 或 netstat -tuln | grep 8080;若被占用,修改端口或释放占用进程。firewall-cmd --permanent --add-port=8080/tcp && firewall-cmd --reloadsystemctl daemon-reload 后再启动。二 常见故障与修复
安装阶段 GPG 校验失败
现象:GPG CHECK FAILED。
处理:
yum install jenkins --nogpgcheckvim /etc/yum.conf 将 gpgcheck=0 → 执行 rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial → 再把 gpgcheck 改回 1。启动失败且提示 Java 版本过低或找不到 Java
现象:invalid java 1.8、Unable to access jarfile ...、systemctl status jenkins 失败。
处理:
yum install -y java-11-openjdk(或更高)。/usr/lib/systemd/system/jenkins.service,在 [Service] 加入Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-<实际版本>/"/etc/init.d/jenkins 的 Java 候选路径是否包含 /usr/lib/jvm/java-11-openjdk。systemctl daemon-reload && systemctl restart jenkins。端口冲突(默认 8080 被占用)
现象:启动失败或端口被占用。
处理:
vim /etc/sysconfig/jenkins,将 JENKINS_PORT="8080" 改为未占用端口(如 8081/8888)。systemctl daemon-reload && systemctl restart jenkins。firewall-cmd --permanent --add-port=新端口/tcp && firewall-cmd --reload。安装 RPM 时脚本报错 No such file or directory
现象:stat: cannot stat ‘/var/cache/jenkins’: No such file or directory。
处理:通常因残留的 /etc/sysconfig/jenkins 配置导致,执行:
rm -f /etc/sysconfig/jenkins 后重新 rpm -ivh jenkins-*.rpm 安装。
插件下载或初始化卡住
现象:页面长时间 “Please wait while Jenkins is getting ready to work…” 或插件安装失败。
处理:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json/var/lib/jenkins/hudson.model.UpdateCenter.xml,将 URL 改为可用镜像后重启。三 一键修复脚本示例
#!/usr/bin/env bash
set -e
# 1) 安装 Java 11
sudo yum install -y java-11-openjdk
# 2) 导入 Jenkins 源与 GPG
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
# 3) 安装 Jenkins
sudo yum install -y jenkins
# 4) 修改端口为 8081(示例)
sudo sed -i 's/^JENKINS_PORT=.*/JENKINS_PORT="8081"/' /etc/sysconfig/jenkins
# 5) 设置 JAVA_HOME(按实际路径调整)
echo 'Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-$(rpm -q --qf "%{VERSION}.%{RELEASE}" java-11-openjdk)/"' | \
sudo tee /usr/lib/systemd/system/jenkins.service.d/java-home.conf
# 6) 防火墙放行
sudo firewall-cmd --permanent --add-port=8081/tcp
sudo firewall-cmd --reload
# 7) 重载并启动
sudo systemctl daemon-reload
sudo systemctl enable --now jenkins
echo "Jenkins 已启动,访问:http://服务器IP:8081"
echo "初始管理员密码:"
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
说明:请将 JAVA_HOME 路径替换为 java-11-openjdk 在你的系统中的实际路径(可用 readlink -f $(which java) 辅助定位)。
四 仍未解决请提供以下关键信息
cat /etc/centos-releasejava -version 与 rpm -qa | grep javasystemctl status jenkins -l、journalctl -xeu jenkins -n100、tail -n100 /var/log/jenkins/jenkins.logss -tulpen | grep 8080/etc/sysconfig/jenkins、/usr/lib/systemd/system/jenkins.service)提供以上信息可快速定位剩余问题。