温馨提示×

Debian怎么升级GitLab

小樊
41
2026-08-17 13:09:16
栏目: 智能运维

在 Debian 上升级 GitLab,取决于你是通过 Omnibus 包 还是 源码 / Docker 安装的。下面以 最常见的 Omnibus 安装方式 为主说明(官方推荐)。


一、确认当前 GitLab 安装方式

dpkg -l | grep gitlab

如果看到类似:

gitlab-ee
gitlab-ce

说明是 Omnibus 安装,继续下面步骤。


二、升级前准备(非常重要)

1️⃣ 备份 GitLab(强烈建议)

sudo gitlab-backup create

备份文件默认在:

/var/opt/gitlab/backups/

⚠️ 注意:

  • 配置文件不会自动备份,需手动备份:
sudo cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak
sudo cp /etc/gitlab/gitlab-secrets.json /etc/gitlab/gitlab-secrets.json.bak

2️⃣ 查看当前版本

cat /opt/gitlab/version-manifest.txt | head -n 1

三、升级 GitLab(Omnibus 方式)

1️⃣ 更新 APT 源

GitLab 官方源:

sudo apt update

如果之前没加官方源,可重新添加:

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

2️⃣ 升级 GitLab

✅ 升级到最新版本(推荐)

sudo apt update
sudo apt install gitlab-ce

或 EE 版:

sudo apt install gitlab-ee

3️⃣ 重新配置 GitLab

sudo gitlab-ctl reconfigure

4️⃣ 重启服务(可选)

sudo gitlab-ctl restart

四、跨大版本升级(非常重要)

⚠️ 不能直接跨多个大版本升级

例如:

14.x → 15.x → 16.x

正确升级路径示例

14.0 → 14.10 → 15.0 → 15.11 → 16.x

指定版本升级

sudo apt install gitlab-ce=16.0.0-ce.0

查看可用版本:

apt-cache policy gitlab-ce

五、升级后检查

sudo gitlab-ctl status
sudo gitlab-rake gitlab:check SANITIZE=true

访问 Web 页面确认是否正常。


六、常见问题

1️⃣ 升级后 502

通常是服务未完全启动:

sudo gitlab-ctl restart

或等待 1–2 分钟。


2️⃣ 磁盘空间不足

GitLab 升级需要大量空间:

df -h

建议至少保留 5GB+ 空闲空间。


七、Docker 安装的 GitLab(如你用的是 Docker)

docker pull gitlab/gitlab-ce:latest
docker stop gitlab
docker rm gitlab
docker run -d \
  --name gitlab \
  -p 443:443 -p 80:80 \
  -v gitlab-config:/etc/gitlab \
  -v gitlab-logs:/var/log/gitlab \
  -v gitlab-data:/var/opt/gitlab \
  gitlab/gitlab-ce:latest

八、总结(最简流程)

sudo gitlab-backup create
sudo apt update
sudo apt install gitlab-ce
sudo gitlab-ctl reconfigure

如果你愿意,可以告诉我:

  • GitLab 版本
  • Debian 版本
  • 是否是 Docker / 源码安装

我可以给你 精确的升级路径和命令

0