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>
相关推荐
孞㐑¥1 小时前
Linux之Socket 编程 UDP
linux·服务器·c++·经验分享·笔记·网络协议·udp
Fireworkitte3 小时前
Apache POI 详解 - Java 操作 Excel/Word/PPT
java·apache·excel
weixin-a153003083163 小时前
【playwright篇】教程(十七)[html元素知识]
java·前端·html
DCTANT4 小时前
【原创】国产化适配-全量迁移MySQL数据到OpenGauss数据库
java·数据库·spring boot·mysql·opengauss
Touper.4 小时前
SpringBoot -- 自动配置原理
java·spring boot·后端
黄雪超4 小时前
JVM——函数式语法糖:如何使用Function、Stream来编写函数式程序?
java·开发语言·jvm
ThetaarSofVenice4 小时前
对象的finalization机制Test
java·开发语言·jvm
M4K05 小时前
Linux百度网盘优化三板斧
linux
好奇的菜鸟5 小时前
如何在 Ubuntu 24.04 (Noble) 上使用阿里源
linux·运维·ubuntu
bcbobo21cn5 小时前
初步了解Linux etc/profile文件
linux·运维·服务器·shell·profile