这里需要区分一个关键点:你指的是“Debian 系统本身”还是“在 Debian 上运行的 GitLab (通常是 Omnibus 包)”?
绝大多数情况下,大家问这个问题是指 升级运行在 Debian 上的 GitLab 软件本身。
以下分别说明两种情况的操作步骤。
GitLab 官方推荐在 Debian 上使用 Omnibus 包 进行安装和升级。这是最安全、最标准的做法。
警告:升级前务必备份! 尤其是数据库和 Git 仓库。
sudo gitlab-backup create
注意:这个命令不会备份配置文件(如 gitlab.rb 和 secrets.json),你需要手动备份它们:
sudo cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak
sudo cp /etc/gitlab/gitlab-secrets.json /etc/gitlab/gitlab-secrets.json.bak
查看你当前的 GitLab 版本,以便规划升级路径(特别是跨大版本升级时)。
sudo gitlab-rake gitlab:env:info
sudo apt update
升级到最新版:
sudo apt install gitlab-ee # 如果是企业版
# 或者
sudo apt install gitlab-ce # 如果是社区版
升级到指定版本(推荐用于跨大版本升级): GitLab 不支持直接跨多个大版本升级(例如从 14.x 直接跳到 16.x)。你必须按版本顺序升级(例如 14.0 -> 14.10 -> 15.0 -> 15.11 -> 16.0)。
你需要先修改 /etc/apt/sources.list.d/gitlab_gitlab-ee.list (或 ce) 中的版本号,或者指定版本安装:
sudo apt install gitlab-ee=16.0.0-ee.0
(请务必参考 GitLab 官方的 升级路径工具 来确定你需要经过哪些版本)
安装完新包后,必须运行 reconfigure:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
sudo gitlab-ctl status
sudo gitlab-rake gitlab:check SANITIZE=true
如果你是指把 Debian 10 (Buster) 升级到 Debian 11 (Bullseye),或者升级 Debian 的小版本。
同上,先备份 GitLab 数据。
将 /etc/apt/sources.list 以及 /etc/apt/sources.list.d/ 下的文件中的版本代号(如 buster)改为新的代号(如 bullseye)。
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
升级完系统后,GitLab 的 APT 源可能失效或需要更新。检查 /etc/apt/sources.list.d/gitlab_gitlab-ee.list。
确保它指向的是当前 Debian 版本的源。例如:
deb https://packages.gitlab.com/gitlab/gitlab-ee/debian/ bullseye main
如果 GitLab 因为系统库升级而报错,尝试重新安装:
sudo apt install --reinstall gitlab-ee
sudo gitlab-ctl reconfigure
/var/cache/apt 和 /opt/gitlab 有足够的空间(建议至少预留 5GB-10GB)。总结: 如果你只是想更新 GitLab 软件,请使用 sudo apt update && sudo apt install gitlab-ee (或 ce)。如果涉及跨大版本,请务必按官方路径一步步来。