246 lines
5.2 KiB
Markdown
246 lines
5.2 KiB
Markdown
|
|
# Gerrit 升级指南
|
|||
|
|
|
|||
|
|
## 概述
|
|||
|
|
|
|||
|
|
本指南说明如何将 Gerrit 升级到最新版本(3.13.1),并使用 JDK 17 运行。
|
|||
|
|
|
|||
|
|
## 当前状态
|
|||
|
|
|
|||
|
|
- ✅ JDK 17 已安装: `/usr/local/java/jdk-17.0.12+7`
|
|||
|
|
- ✅ 当前 Gerrit 版本: 3.3.8 或 3.9.0
|
|||
|
|
- 🎯 目标版本: 3.13.1(支持 JDK 17)
|
|||
|
|
|
|||
|
|
## 升级步骤
|
|||
|
|
|
|||
|
|
### 方法一:使用升级脚本(推荐)
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd /home/renjianbo/gerrit
|
|||
|
|
./upgrade_gerrit.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
升级脚本会自动:
|
|||
|
|
1. ✅ 验证 JDK 17 安装
|
|||
|
|
2. ✅ 停止现有 Gerrit 服务
|
|||
|
|
3. ✅ 备份所有数据(Git 仓库、数据库、配置、插件)
|
|||
|
|
4. ✅ 下载 Gerrit 3.13.1
|
|||
|
|
5. ✅ 升级 Gerrit(保留现有数据)
|
|||
|
|
6. ✅ 配置 Gerrit 使用 JDK 17
|
|||
|
|
7. ✅ 启动服务
|
|||
|
|
|
|||
|
|
### 方法二:手动升级
|
|||
|
|
|
|||
|
|
#### 1. 停止 Gerrit 服务
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd /home/renjianbo/gerrit_install/review_site
|
|||
|
|
bin/gerrit.sh stop
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 2. 备份数据
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd /home/renjianbo/gerrit_install
|
|||
|
|
BACKUP_DIR="backup_$(date +%Y%m%d_%H%M%S)"
|
|||
|
|
mkdir -p $BACKUP_DIR
|
|||
|
|
|
|||
|
|
# 备份 Git 仓库
|
|||
|
|
cp -r review_site/git $BACKUP_DIR/ 2>/dev/null || true
|
|||
|
|
|
|||
|
|
# 备份数据库
|
|||
|
|
cp -r review_site/db $BACKUP_DIR/ 2>/dev/null || true
|
|||
|
|
|
|||
|
|
# 备份配置
|
|||
|
|
cp -r review_site/etc $BACKUP_DIR/ 2>/dev/null || true
|
|||
|
|
|
|||
|
|
# 备份插件
|
|||
|
|
cp -r review_site/plugins $BACKUP_DIR/ 2>/dev/null || true
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 3. 下载新版本
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd /home/renjianbo/gerrit_install
|
|||
|
|
wget https://gerrit-releases.storage.googleapis.com/gerrit-3.13.1.war
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 4. 设置 JDK 17
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
export JAVA_HOME=/usr/local/java/jdk-17.0.12+7
|
|||
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|||
|
|
|
|||
|
|
# 验证
|
|||
|
|
java -version
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 5. 升级 Gerrit
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd /home/renjianbo/gerrit_install
|
|||
|
|
java -jar gerrit-3.13.1.war init \
|
|||
|
|
-d review_site \
|
|||
|
|
--batch \
|
|||
|
|
--no-auto-start \
|
|||
|
|
--install-plugin=download-commands \
|
|||
|
|
--install-plugin=replication \
|
|||
|
|
--install-plugin=reviewnotes
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 6. 配置使用 JDK 17 启动
|
|||
|
|
|
|||
|
|
编辑 `review_site/bin/gerrit.sh`,在文件开头添加:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
export JAVA_HOME=/usr/local/java/jdk-17.0.12+7
|
|||
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 7. 启动服务
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd /home/renjianbo/gerrit_install/review_site
|
|||
|
|
bin/gerrit.sh start
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 8. 验证升级
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 检查服务状态
|
|||
|
|
bin/gerrit.sh status
|
|||
|
|
|
|||
|
|
# 查看日志
|
|||
|
|
tail -f logs/error_log
|
|||
|
|
|
|||
|
|
# 访问 Web 界面
|
|||
|
|
# http://101.43.95.130:8080
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 版本兼容性
|
|||
|
|
|
|||
|
|
| Gerrit 版本 | 最低 JDK 要求 | 推荐 JDK |
|
|||
|
|
|------------|--------------|---------|
|
|||
|
|
| 3.3.x | JDK 11 | JDK 11 |
|
|||
|
|
| 3.9.x | JDK 17 | JDK 17 |
|
|||
|
|
| 3.13.x | JDK 17 | JDK 17 |
|
|||
|
|
|
|||
|
|
## 升级后验证
|
|||
|
|
|
|||
|
|
### 1. 检查版本
|
|||
|
|
|
|||
|
|
访问 Gerrit Web 界面,在页面底部查看版本号,应该显示 `3.13.1`。
|
|||
|
|
|
|||
|
|
### 2. 检查 Java 版本
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd /home/renjianbo/gerrit_install/review_site
|
|||
|
|
ps aux | grep gerrit | grep java
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
应该看到进程使用 JDK 17。
|
|||
|
|
|
|||
|
|
### 3. 测试功能
|
|||
|
|
|
|||
|
|
- ✅ 登录 Web 界面
|
|||
|
|
- ✅ 查看项目列表
|
|||
|
|
- ✅ 创建/查看变更
|
|||
|
|
- ✅ SSH 连接测试
|
|||
|
|
|
|||
|
|
## 回滚(如果需要)
|
|||
|
|
|
|||
|
|
如果升级后出现问题,可以回滚到之前的版本:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 1. 停止服务
|
|||
|
|
cd /home/renjianbo/gerrit_install/review_site
|
|||
|
|
bin/gerrit.sh stop
|
|||
|
|
|
|||
|
|
# 2. 恢复备份
|
|||
|
|
cd /home/renjianbo/gerrit_install
|
|||
|
|
BACKUP_DIR="backup_YYYYMMDD_HHMMSS" # 替换为实际的备份目录名
|
|||
|
|
|
|||
|
|
# 恢复 Git 仓库
|
|||
|
|
rm -rf review_site/git
|
|||
|
|
cp -r $BACKUP_DIR/git review_site/
|
|||
|
|
|
|||
|
|
# 恢复数据库
|
|||
|
|
rm -rf review_site/db
|
|||
|
|
cp -r $BACKUP_DIR/db review_site/
|
|||
|
|
|
|||
|
|
# 恢复配置
|
|||
|
|
rm -rf review_site/etc
|
|||
|
|
cp -r $BACKUP_DIR/etc review_site/
|
|||
|
|
|
|||
|
|
# 恢复插件
|
|||
|
|
rm -rf review_site/plugins
|
|||
|
|
cp -r $BACKUP_DIR/plugins review_site/ 2>/dev/null || true
|
|||
|
|
|
|||
|
|
# 3. 使用旧版本 war 文件重新初始化
|
|||
|
|
# (使用之前下载的 gerrit-3.3.8.war 或 gerrit-3.9.0.war)
|
|||
|
|
|
|||
|
|
# 4. 启动服务
|
|||
|
|
cd review_site
|
|||
|
|
bin/gerrit.sh start
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 常见问题
|
|||
|
|
|
|||
|
|
### Q: 升级后服务无法启动?
|
|||
|
|
|
|||
|
|
**A:** 检查日志文件:
|
|||
|
|
```bash
|
|||
|
|
tail -f /home/renjianbo/gerrit_install/review_site/logs/error_log
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
常见原因:
|
|||
|
|
- JDK 版本不匹配
|
|||
|
|
- 端口被占用
|
|||
|
|
- 配置文件错误
|
|||
|
|
|
|||
|
|
### Q: 升级后数据丢失?
|
|||
|
|
|
|||
|
|
**A:** 检查备份目录:
|
|||
|
|
```bash
|
|||
|
|
ls -la /home/renjianbo/gerrit_install/backup_*
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
可以从备份目录恢复数据。
|
|||
|
|
|
|||
|
|
### Q: 如何确认使用的是 JDK 17?
|
|||
|
|
|
|||
|
|
**A:** 运行以下命令:
|
|||
|
|
```bash
|
|||
|
|
cd /home/renjianbo/gerrit_install/review_site
|
|||
|
|
ps aux | grep gerrit | grep -o '/[^ ]*java[^ ]*' | head -1 | xargs -I {} {} -version
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Q: 升级需要多长时间?
|
|||
|
|
|
|||
|
|
**A:** 通常需要 2-5 分钟,取决于:
|
|||
|
|
- 网络速度(下载新版本)
|
|||
|
|
- 数据量大小(备份和升级)
|
|||
|
|
- 服务器性能
|
|||
|
|
|
|||
|
|
## 注意事项
|
|||
|
|
|
|||
|
|
1. ⚠️ **备份重要**:升级前务必备份所有数据
|
|||
|
|
2. ⚠️ **停机时间**:升级过程中服务会停止,建议在维护窗口进行
|
|||
|
|
3. ⚠️ **测试环境**:建议先在测试环境验证升级流程
|
|||
|
|
4. ⚠️ **插件兼容性**:某些插件可能需要更新以支持新版本
|
|||
|
|
5. ⚠️ **配置检查**:升级后检查配置文件,确保所有设置正确
|
|||
|
|
|
|||
|
|
## 相关文件
|
|||
|
|
|
|||
|
|
- 升级脚本: `/home/renjianbo/gerrit/upgrade_gerrit.sh`
|
|||
|
|
- 安装脚本: `/home/renjianbo/gerrit/install_gerrit.sh`
|
|||
|
|
- 重新安装脚本: `/home/renjianbo/gerrit/reinstall_gerrit.sh`
|
|||
|
|
- Gerrit 目录: `/home/renjianbo/gerrit_install/`
|
|||
|
|
|
|||
|
|
## 技术支持
|
|||
|
|
|
|||
|
|
如果遇到问题,可以:
|
|||
|
|
1. 查看日志文件
|
|||
|
|
2. 检查备份数据
|
|||
|
|
3. 参考 Gerrit 官方文档: https://www.gerritcodereview.com/
|
|||
|
|
|