在 Debian 系统上升级 GitLab(通常指 GitLab CE / EE Omnibus 包)是比较成熟的流程,下面按 推荐顺序 给你说明。
sudo gitlab-rake gitlab:env:info
# 或
cat /opt/gitlab/version-manifest.txt
⚠️ GitLab 必须逐级升级,不能直接跨大版本。
例如:
8.x → 9.x → 10.x → 11.x → 12.x → 13.x → 14.x → 15.x → 16.x → 17.x
sudo gitlab-backup create
或(旧版本)
sudo gitlab-rake gitlab:backup:create
备份文件位置:
/var/opt/gitlab/backups/
✅ 同时备份配置文件:
sudo cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak
sudo cp -R /etc/gitlab/ssl /etc/gitlab/ssl.bak
sudo apt update
sudo apt upgrade -y
查看:
cat /etc/apt/sources.list.d/gitlab_gitlab-*.list
如果没有,可重新添加(以 GitLab CE 为例):
curl -fsSL https://packages.gitlab.com/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/gitlab-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/gitlab-archive-keyring.gpg] \
https://packages.gitlab.com/gitlab/gitlab-ce/debian $(lsb_release -cs) main" \
| sudo tee /etc/apt/sources.list.d/gitlab_gitlab-ce.list
sudo apt update
sudo apt install gitlab-ce
或指定版本(推荐):
sudo apt install gitlab-ce=16.11.10-ce.0
查看可用版本:
apt-cache policy gitlab-ce
例如你现在是 14.0.x,目标是 16.x:
# 1. 升级到 14.x 最新
sudo apt install gitlab-ce=14.10.5-ce.0
# 2. 升级到 15.x 最低
sudo apt install gitlab-ce=15.0.0-ce.0
# 3. 升级到 15.x 最新
sudo apt install gitlab-ce=15.11.13-ce.0
# 4. 升级到 16.x
sudo apt install gitlab-ce=16.0.0-ce.0
sudo apt install gitlab-ce
每次升级后执行:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
sudo gitlab-ctl status
sudo gitlab-rake gitlab:check SANITIZE=true
访问 Web 页面确认是否正常。
sudo gitlab-ctl reconfigure
sudo gitlab-rake db:migrate
df -h
du -sh /var/opt/gitlab
恢复备份:
sudo gitlab-backup restore BACKUP=timestamp
如果你不是 Omnibus Debian 包,而是:
| 安装方式 | 升级方式 |
|---|---|
| Docker | 拉取新镜像 + 挂载数据 |
| 源码 | 手动 git pull + bundle |
可以告诉我,我可以单独给你对应方案。
# 1. 备份
sudo gitlab-backup create
# 2. 更新源
sudo apt update
# 3. 逐级升级
sudo apt install gitlab-ce=目标版本
# 4. 重新配置
sudo gitlab-ctl reconfigure
如果你愿意,可以告诉我:
我可以 直接给你精确的升级路径和命令。