Centos 安装Jenkins

Jenkins 的本质就是一个"脚本执行器 + 监控平台 + 插件容器,它的能力几乎完全由插件决定。所以,学习 Jenkins 的过程,其实就是学习怎么根据业务场景选择、配置和使用插件的过程。

下载安装jdk

javascript 复制代码
# 输出x86_64:表示这是一个 64 位的 x86 系统。
uname -m

Java Downloads | Oraclehttps://www.oracle.com/java/technologies/downloads/

这是我的安装路径

配置maven 和jdk21环境变量

javascript 复制代码
export JAVA_HOME=/usr/local/share/jdk-21.0.7/
export MAVEN_HOME=/usr/local/share/maven-3.9.6/

export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
javascript 复制代码
source /etc/profile

java -version
javascript 复制代码
# Jenkins 启动会去/usr/bin/ 找可在执行java命令

sudo ln -s /usr/local/share/jdk-21.0.7/bin/java /usr/bin/java
sudo ln -s /usr/local/share/jdk-21.0.7/bin/javac /usr/bin/javac

下载安装 Jenkins Linuxhttps://www.jenkins.io/doc/book/installing/linux/#red-hat-centos

javascript 复制代码
# 下载 Jenkins 官方 YUM 仓库配置文件并保存到 /etc/yum.repos.d/jenkins.repo
# 这个文件包含了 Jenkins 软件包的仓库地址信息,使得 yum 可以从这个源安装或更新 Jenkins
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

# 导入 Jenkins 官方 GPG 公钥,用于验证下载的软件包是否被篡改
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key

# 更新现有的所有软件包到最新版本,确保系统中的所有软件都是最新的
sudo yum upgrade

# 安装Jenkins 运行所需的 Java 环境 java-21-openjdk
sudo yum install fontconfig java-21-openjdk

# 安装 Jenkins 软件包
sudo yum install jenkins

# 当修改了服务文件或者添加了新的服务后,需要执行此命令使更改生效
sudo systemctl daemon-reload
javascript 复制代码
# 启动服务
sudo systemctl start jenkins

# 检查状态
sudo systemctl status jenkins

# 开机自启
sudo systemctl enable jenkins

页面还是挺友好的!

踩坑!

  1. jdk版本过低 ,jdk8肯定是不支持最新的jenkins,需要升级jdk,按照官网是使用jdk21

  2. jenkins 启动找不到java 可执行的命令,就是全局变量设置不生效

为什么 /etc/profile 设置对 systemd 服务无效?

/etc/profile 及其相关的脚本(例如 ~/.bash_profile, ~/.bashrc 等)主要用于配置用户登录 shell 的环境。而 systemd 启动的服务并不通过这些脚本初始化它们的环境,因此这些环境变量不会自动应用到 systemd 管理的服务中。

查看jenkins 启动shell 脚本

其中:

javascript 复制代码
infer_java_cmd() {
    if [ -n "${JENKINS_JAVA_CMD}" ] && [ -x "${JENKINS_JAVA_CMD}" ]; then
        return 0
    fi

    if [ -n "${JAVA_HOME}" ] && [ -x "${JAVA_HOME}/bin/java" ]; then
        JENKINS_JAVA_CMD="${JAVA_HOME}/bin/java"
        return 0
    fi

    JENKINS_JAVA_CMD="$(command -v java)" || return "$?"
}


解释:
功能:推断要使用的 java 可执行文件路径。
优先顺序:
环境变量 JENKINS_JAVA_CMD 显式指定
使用 JAVA_HOME/bin/java
使用系统 PATH 中的 java(即 /usr/bin/java)

所以为了开头 创建2个软链接 指向/usr/bin/
  1. maven 安装时记得修改setting文件里本地仓库地址和国内镜像

4.端口8080被占用问题

修改jenkins 的端口, 还是修改启动shell脚本,开头加一行 export JENKINS_PORT=9090

问题:Jenkins 使用 JDK 21,而项目是使用 JDK 8 编写的代码,这样编译会不会出问题?

答:

Jenkins 本身是一个 Java Web 应用,它运行时使用的 JDK(即 JENKINS_JAVA_CMD 或 JAVA_HOME)决定了 Jenkins 运行环境的版本,比如你使用的是 JDK 21。但你的项目代码在 Jenkins 中是如何被构建的,取决于你使用的工具和配置,比如Maven xml

javascript 复制代码
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
    </configuration>
</plugin>
相关推荐
小学仔12 小时前
科大镜像科大镜像科大镜像
java
小旭952712 小时前
Java 反射详解
java·开发语言·jvm·面试·intellij-idea
PPPPPaPeR.12 小时前
环 境 变 量
linux·运维·windows
HalvmånEver12 小时前
Linux:线程创建与终止上(线程五)
java·linux·jvm
嵌入小生00712 小时前
双向链表、双向循环链表之间的异同---嵌入式入门---Linux
linux·c语言·数据结构·链表·嵌入式·小白
H Journey12 小时前
Linux sudo 命令完全指南
linux·运维·服务器·sudo
m0_7482331712 小时前
PHP版本演进:从7.x到8.x全解析
java·开发语言·php
qq_124987075312 小时前
基于springboot的林业资源管理系统设计与实现(源码+论文+部署+安装)
java·vue.js·spring boot·后端·spring·毕业设计·计算机毕业设计
开开心心_Every12 小时前
家常菜谱软件推荐:分类齐全无广告步骤详细
linux·运维·服务器·华为od·edge·pdf·华为云
i建模12 小时前
在 Arch Linux 中安装 **Xorg 服务器**
linux·运维·服务器