GitLab CE/EE. Обновление до определенной версии

GitLab CE/EE. Обновление до определенной версии
Photo by Pankaj Patel / Unsplash

Долгое время не обновлял GitLab CE на сервере, теперь при попытке обновления версии GitLab CE стала появляться ошибка:

Подготовка к распаковке …/gitlab-ce_17.0.0-ce.0_amd64.deb …
gitlab preinstall: It seems you are upgrading from 16.9 to 17.0.
gitlab preinstall: It is required to upgrade to the latest 16.11.x version first before proceeding.
gitlab preinstall: Please follow the upgrade documentation at https://docs.gitlab.com/ee/update/#upgrading-to-a-new-major-version
dpkg: ошибка при обработке архива /var/cache/apt/archives/gitlab-ce_17.0.0-ce.0_amd64.deb (--unpack):
 new gitlab-ce package pre-installation script subprocess returned error exit status 1
При обработке следующих пакетов произошли ошибки:
 /var/cache/apt/archives/gitlab-ce_17.0.0-ce.0_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Оказалось, с моей текущей версии нельзя перейти на новую мажорную версию, и сам текст ошибки говорит мне о том, что надо сперва с моей версии 16.9 обновиться до последней версии 16.11.x, а только потом обновляться до следующей мажорной версии. Ниже описанные действия есть в официальной документации, данная ссылка на мой взгляд более точная, чем указана в тексте ошибки.

Обновляемся на Ubuntu 20.04, поэтому все команды действительны для Debian/Ubuntu и версии GitLab Community Edition:

Идентифицируем номер версии для обновления:

# Ubuntu/Debian
sudo apt-cache madison gitlab-ce

Получаем следующий вывод (взято несколько строк с верху начиная от текущей имеющейся версии):

 gitlab-ce | 17.0.0-ce.0 | https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal/main amd64 Packages
 gitlab-ce | 16.11.2-ce.0 | https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal/main amd64 Packages
 gitlab-ce | 16.11.1-ce.0 | https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal/main amd64 Packages
 gitlab-ce | 16.11.0-ce.0 | https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal/main amd64 Packages
 gitlab-ce | 16.10.5-ce.0 | https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal/main amd64 Packages
 gitlab-ce | 16.10.4-ce.0 | https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal/main amd64 Packages
 gitlab-ce | 16.10.3-ce.0 | https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal/main amd64 Packages
 gitlab-ce | 16.10.2-ce.0 | https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal/main amd64 Packages
 gitlab-ce | 16.10.1-ce.0 | https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal/main amd64 Packages
 gitlab-ce | 16.10.0-ce.0 | https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal/main amd64 Packages
 gitlab-ce | 16.9.8-ce.0 | https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal/main amd64 Packages
 gitlab-ce | 16.9.7-ce.0 | https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal/main amd64 Packages
 gitlab-ce | 16.9.6-ce.0 | https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal/main amd64 Packages

Обновляемся до необходимой версии, выбирая её из списка выше. Для обновления до версии 16.9.7-ce.0 выполняем команду:

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

Можно пробовать обновлять сразу через несколько версий, а не последовательно. Добравшись до необходимой версии можно запустить обычный процесс обновления пакетов, который, уже успешно должен установить новую мажорную версию пакета.