Debian 上排查与修复 Jenkins 安装问题
一、标准安装与最小检查
- 安装 Java(推荐 OpenJDK 11 或更高版本):sudo apt update && sudo apt install -y openjdk-11-jdk
- 导入 Jenkins 仓库密钥与源(新版推荐 keyring 方式):
- wget -q -O /usr/share/keyrings/jenkins-keyring.asc https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
- echo “deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/” | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
- 更新索引并安装:sudo apt update && sudo apt install -y jenkins
- 启动与开机自启:sudo systemctl enable --now jenkins
- 访问与初始密码:浏览器打开 http://服务器IP:8080,密码在 /var/lib/jenkins/secrets/initialAdminPassword
- 防火墙放行:sudo ufw allow 8080 或按实际防火墙策略放行对应端口。
二、常见报错与对应修复
-
GPG 签名无法验证(NO_PUBKEY 或签名不被信任)
- 原因:缺少或过期密钥、sources 重复。
- 修复:导入最新密钥并使用 signed-by;检查并清理重复条目。
- wget -q -O /usr/share/keyrings/jenkins-keyring.asc https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
- echo “deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/” | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
- 检查重复:grep -R “pkg.jenkins.io” /etc/apt/sources.list /etc/apt/sources.list.d/,注释或删除重复行;再 sudo apt update。
-
HTTPS 证书/握手失败(如 gnutls_handshake() failed)
- 原因:CA 证书缺失或网络中间设备干扰。
- 修复:sudo apt install -y ca-certificates;必要时更换为稳定镜像源或检查网络代理/防火墙。
-
依赖不满足(如 Depends: daemon but it is not installable)
- 原因:系统组件源不完整(常见于部分 Debian/Ubuntu 环境)。
- 修复:启用 universe 仓库后重试(Debian 可按需启用 universe 等同源组):sudo add-apt-repository universe;sudo apt update;sudo apt install -y jenkins。
-
Java 未安装或 java 命令不可用
- 现象:安装阶段或启动阶段报找不到 Java。
- 修复:sudo apt install -y openjdk-11-jdk;确认 java -version 有输出;若仍提示找不到,建立软链接(示例):sudo ln -sfn /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/bin/java。
-
端口 8080 被占用
- 现象:服务起不来或端口冲突。
- 修复:查看占用 ss -tulpen | grep 8080;修改 /etc/default/jenkins 中的 HTTP_PORT=新端口;重启 sudo systemctl restart jenkins。
三、服务无法启动的深入排查
- 查看服务状态与日志:
- 运行状态:systemctl status jenkins
- 服务日志:sudo journalctl -u jenkins -xe
- 应用日志:tail -n 200 /var/log/jenkins/jenkins.log
- 配置与权限:
- 主目录与权限:ls -ld /var/lib/jenkins /var/log/jenkins;必要时 chown -R jenkins:jenkins /var/lib/jenkins /var/log/jenkins
- 配置文件:/etc/default/jenkins(JENKINS_HOME、HTTP_PORT、JAVA 等)
- 重新安装(保留数据):
- 卸载包但保留数据:sudo apt-get remove jenkins
- 清理未使用依赖:sudo apt-get autoremove
- 重新安装:sudo apt-get install jenkins;确认 /var/lib/jenkins 下数据仍在。
四、防火墙与网络连通性
- UFW:sudo ufw allow 8080/tcp;或 sudo ufw allow 8080
- firewalld:sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload
- 云服务器安全组:放行 8080/TCP 入站规则
- 访问测试:curl -I http://localhost:8080 或 http://服务器IP:8080。