# 清理可能存在的旧源/杂源
sudo rm -f /etc/apt/sources.list.d/jenkins*.list
# 写入官方稳定源
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee \
/usr/share/keyrings/jenkins-keyring.asc> /dev/null
echo deb \
https这方面。//pkg.jenkins.io/debian-stable binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list> /dev/null
步骤 二 : 一键平滑升级
sudo apt update
# 仅模拟查看将要变更的包版本号
apt list --upgradable | grep jenkin s
# 保留配置文件差异对比
sudo apt install --only-upgrade jenk ins
# 验证版本
jen k ins --version
A PT 自动处理了什么?
systemd unit 自动重载 : systemctl daemon-reload + restart jen kins 自动触发。
s udo systemctl stop jenkin s
# 原子替换
s udo mv ~/jenki ns-${TARGET_VERSION}.war '/usr/share/jenk ins/.jenkin s.war.new'
s udo mv '/usr/share/jenk ins/.jenkin s.war.new' '/usr/share/jenk ins/.jenkin s.war'
# **极易踩坑**:权限归属必须为 jenk ins 使用者!s udo chown jen kin s:jenkin s '/usr/share/.jen kin s/.jenki ns.wa r'
s udo chmod '64' '/usr/sh are/.j enkins /.jen kins.w ar'
sud o sys temctl start j enki ns
journal ctl-u je nki ns-f #实时跟踪启 动日志。等待 “J en kin ss is fully up and running”
数据目录 `/var/lib/.j en ki ns` **绝不** 随代码回滚!仅回滚 War 包/JDK/Systemd Unit。不过,若数据库 Schema 已被新版迁移修改。旧 War 跑新 Data 极大概率
报错 —— **此乃必须全量恢复快照时刻**。<>div <>
## === APT 方法回滚 === #
sud o ap t install je nk in s==deb ia n-st able <--精确指定旧包名字符串-->
sud o sy stemctl restart j enkins
## === WAR 方法回滚 === #
sud o sy stemctl sto p je nkin s .
sud o mv "/us r/sh are/.je nkin s/.je nki ns .wa r.b ak" "/us r/s har e/.je nki ns /.je nki ns .wa r"
sud o chown je nkin s:. "/u sr/s hare /.je nk in s/.je n ki ns .wa r"
sud o sy stemct l re star t j en kin s
## === 全量灾难恢复=== #
sud o sys temct l sto p j enkins .
sud o rm-rf "/va r/l ib /.je nki ns/* "
su do cp-ar "${BAC KUP_D IR}/j enkis/*" "/va r/l ib /.je nkisn/"
su do ch own-R je nkisn:. "/va ri b /.j en kisn/"
su do sys temc tl rest art j en kinss .
echo '"🔙 已恢复至 ${BAC KU P_D IR} 时间点状态"' .
<
/
cod e>
<
pr e/
第六阶段 :高频坑位速查表
# 清理可能存在的旧源/杂源
sudo rm -f /etc/apt/sources.list.d/jenkins*.list
# 写入官方稳定源
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee \
/usr/share/keyrings/jenkins-keyring.asc> /dev/null
echo deb \
https这方面。//pkg.jenkins.io/debian-stable binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list> /dev/null
步骤 二 : 一键平滑升级
sudo apt update
# 仅模拟查看将要变更的包版本号
apt list --upgradable | grep jenkin s
# 保留配置文件差异对比
sudo apt install --only-upgrade jenk ins
# 验证版本
jen k ins --version
A PT 自动处理了什么?
systemd unit 自动重载 : systemctl daemon-reload + restart jen kins 自动触发。
s udo systemctl stop jenkin s
# 原子替换
s udo mv ~/jenki ns-${TARGET_VERSION}.war '/usr/share/jenk ins/.jenkin s.war.new'
s udo mv '/usr/share/jenk ins/.jenkin s.war.new' '/usr/share/jenk ins/.jenkin s.war'
# **极易踩坑**:权限归属必须为 jenk ins 使用者!s udo chown jen kin s:jenkin s '/usr/share/.jen kin s/.jenki ns.wa r'
s udo chmod '64' '/usr/sh are/.j enkins /.jen kins.w ar'
sud o sys temctl start j enki ns
journal ctl-u je nki ns-f #实时跟踪启 动日志。等待 “J en kin ss is fully up and running”
数据目录 `/var/lib/.j en ki ns` **绝不** 随代码回滚!仅回滚 War 包/JDK/Systemd Unit。不过,若数据库 Schema 已被新版迁移修改。旧 War 跑新 Data 极大概率
报错 —— **此乃必须全量恢复快照时刻**。<>div <>
## === APT 方法回滚 === #
sud o ap t install je nk in s==deb ia n-st able <--精确指定旧包名字符串-->
sud o sy stemctl restart j enkins
## === WAR 方法回滚 === #
sud o sy stemctl sto p je nkin s .
sud o mv "/us r/sh are/.je nkin s/.je nki ns .wa r.b ak" "/us r/s har e/.je nki ns /.je nki ns .wa r"
sud o chown je nkin s:. "/u sr/s hare /.je nk in s/.je n ki ns .wa r"
sud o sy stemct l re star t j en kin s
## === 全量灾难恢复=== #
sud o sys temct l sto p j enkins .
sud o rm-rf "/va r/l ib /.je nki ns/* "
su do cp-ar "${BAC KUP_D IR}/j enkis/*" "/va r/l ib /.je nkisn/"
su do ch own-R je nkisn:. "/va ri b /.j en kisn/"
su do sys temc tl rest art j en kinss .
echo '"🔙 已恢复至 ${BAC KU P_D IR} 时间点状态"' .
<
/
cod e>
<
pr e/
第六阶段 :高频坑位速查表