更新 Bitnami Gitlab - 文档不够清晰

Updating Bitnami Gitlab - Documentation lacking clarity

我正在尝试将 GitLab CE 的本地安装从 v8.9.6 更新到 v8.13.1 this guide

我已经完成了第二步的第一步:

cd /opt/bitnami/apps/gitlab/htdocs
git fetch --all
git checkout -- db/schema.rb Gemfile.lock

然后在下一部分我尝试签出到 v8.13.1 并收到以下错误:

所以文档似乎缺少一个步骤。

此安装中大约有 100 个存储库,因此尽管有备份我还是非常小心,但显然我需要存储和应用。

任何人都知道缺少的步骤可能是什么,或者我是否以某种方式误读了本文档

git差异

reece@stead-lane-gitlab-vm:/opt/bitnami/apps/gitlab/htdocs$ git diff
diff --git a/Gemfile b/Gemfile
index 7786982..55cd68c 100644
--- a/Gemfile
+++ b/Gemfile
@@ -29,7 +29,7 @@ gem 'omniauth-facebook',      '~> 3.0.0'
 gem 'omniauth-github',        '~> 1.1.1'
 gem 'omniauth-gitlab',        '~> 1.0.0'
 gem 'omniauth-google-oauth2', '~> 0.2.0'
-gem 'omniauth-kerberos',      '~> 0.3.0', group: :kerberos
+#gem 'omniauth-kerberos',      '~> 0.3.0', group: :kerberos
 gem 'omniauth-saml',          '~> 1.6.0'
 gem 'omniauth-shibboleth',    '~> 1.2.0'
 gem 'omniauth-twitter',       '~> 1.2.0'
diff --git a/app/helpers/commits_helper.rb b/app/helpers/commits_helper.rb
index 474041e..653ba3c 100644
--- a/app/helpers/commits_helper.rb
+++ b/app/helpers/commits_helper.rb
@@ -1,4 +1,5 @@
 # encoding: utf-8
+# encoding: utf-8
 module CommitsHelper
   # Returns a link to the commit author. If the author has a matching user and
   # is a member of the current @project it will link to the team member page.
diff --git a/bin/mail_room b/bin/mail_room
index 74a84f5..618c949 100755
--- a/bin/mail_room
+++ b/bin/mail_room
@@ -1,50 +1,16 @@
-#!/bin/sh
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'mail_room' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#

-cd $(dirname [=11=])/..
-app_root=$(pwd)
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)
:...skipping...
diff --git a/Gemfile b/Gemfile
index 7786982..55cd68c 100644
--- a/Gemfile
+++ b/Gemfile
@@ -29,7 +29,7 @@ gem 'omniauth-facebook',      '~> 3.0.0'
 gem 'omniauth-github',        '~> 1.1.1'
 gem 'omniauth-gitlab',        '~> 1.0.0'
 gem 'omniauth-google-oauth2', '~> 0.2.0'
-gem 'omniauth-kerberos',      '~> 0.3.0', group: :kerberos
+#gem 'omniauth-kerberos',      '~> 0.3.0', group: :kerberos
 gem 'omniauth-saml',          '~> 1.6.0'
 gem 'omniauth-shibboleth',    '~> 1.2.0'
 gem 'omniauth-twitter',       '~> 1.2.0'
diff --git a/app/helpers/commits_helper.rb b/app/helpers/commits_helper.rb
index 474041e..653ba3c 100644
--- a/app/helpers/commits_helper.rb
+++ b/app/helpers/commits_helper.rb
@@ -1,4 +1,5 @@
 # encoding: utf-8
+# encoding: utf-8
 module CommitsHelper
   # Returns a link to the commit author. If the author has a matching user and
   # is a member of the current @project it will link to the team member page.
diff --git a/bin/mail_room b/bin/mail_room
index 74a84f5..618c949 100755
--- a/bin/mail_room
+++ b/bin/mail_room
@@ -1,50 +1,16 @@
-#!/bin/sh
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'mail_room' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#

-cd $(dirname [=11=])/..
-app_root=$(pwd)
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)

-mail_room_pidfile="$app_root/tmp/pids/mail_room.pid"
-mail_room_logfile="$app_root/log/mail_room.log"
:...skipping...
diff --git a/Gemfile b/Gemfile
index 7786982..55cd68c 100644
--- a/Gemfile
+++ b/Gemfile
@@ -29,7 +29,7 @@ gem 'omniauth-facebook',      '~> 3.0.0'
 gem 'omniauth-github',        '~> 1.1.1'
 gem 'omniauth-gitlab',        '~> 1.0.0'
 gem 'omniauth-google-oauth2', '~> 0.2.0'
-gem 'omniauth-kerberos',      '~> 0.3.0', group: :kerberos
+#gem 'omniauth-kerberos',      '~> 0.3.0', group: :kerberos
 gem 'omniauth-saml',          '~> 1.6.0'
 gem 'omniauth-shibboleth',    '~> 1.2.0'
 gem 'omniauth-twitter',       '~> 1.2.0'
diff --git a/app/helpers/commits_helper.rb b/app/helpers/commits_helper.rb
index 474041e..653ba3c 100644
--- a/app/helpers/commits_helper.rb
+++ b/app/helpers/commits_helper.rb
@@ -1,4 +1,5 @@
 # encoding: utf-8
+# encoding: utf-8
 module CommitsHelper
   # Returns a link to the commit author. If the author has a matching user and
   # is a member of the current @project it will link to the team member page.
diff --git a/bin/mail_room b/bin/mail_room
index 74a84f5..618c949 100755
--- a/bin/mail_room
+++ b/bin/mail_room
@@ -1,50 +1,16 @@
-#!/bin/sh
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'mail_room' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#

-cd $(dirname [=11=])/..
-app_root=$(pwd)
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)

-mail_room_pidfile="$app_root/tmp/pids/mail_room.pid"
-mail_room_logfile="$app_root/log/mail_room.log"
-mail_room_config="$app_root/config/mail_room.yml"
+require 'rubygems'
+require 'bundler/setup'

-get_mail_room_pid()
-{
:...skipping...
diff --git a/Gemfile b/Gemfile
index 7786982..55cd68c 100644
--- a/Gemfile
+++ b/Gemfile
@@ -29,7 +29,7 @@ gem 'omniauth-facebook',      '~> 3.0.0'
 gem 'omniauth-github',        '~> 1.1.1'
 gem 'omniauth-gitlab',        '~> 1.0.0'
 gem 'omniauth-google-oauth2', '~> 0.2.0'
-gem 'omniauth-kerberos',      '~> 0.3.0', group: :kerberos
+#gem 'omniauth-kerberos',      '~> 0.3.0', group: :kerberos
 gem 'omniauth-saml',          '~> 1.6.0'
 gem 'omniauth-shibboleth',    '~> 1.2.0'
 gem 'omniauth-twitter',       '~> 1.2.0'
diff --git a/app/helpers/commits_helper.rb b/app/helpers/commits_helper.rb
index 474041e..653ba3c 100644
--- a/app/helpers/commits_helper.rb
+++ b/app/helpers/commits_helper.rb
@@ -1,4 +1,5 @@
 # encoding: utf-8
+# encoding: utf-8
 module CommitsHelper
   # Returns a link to the commit author. If the author has a matching user and
   # is a member of the current @project it will link to the team member page.
diff --git a/bin/mail_room b/bin/mail_room
index 74a84f5..618c949 100755
--- a/bin/mail_room
+++ b/bin/mail_room
@@ -1,50 +1,16 @@
-#!/bin/sh
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'mail_room' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#

-cd $(dirname [=11=])/..
-app_root=$(pwd)
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)

-mail_room_pidfile="$app_root/tmp/pids/mail_room.pid"
-mail_room_logfile="$app_root/log/mail_room.log"
-mail_room_config="$app_root/config/mail_room.yml"
+require 'rubygems'
+require 'bundler/setup'

-get_mail_room_pid()
-{
-  local pid=$(cat $mail_room_pidfile)
-  if [ -z "$pid" ] ; then
-    echo "Could not find a PID in $mail_room_pidfile"
-    exit 1
-  fi
-  mail_room_pid=$pid
-}
:...skipping...
diff --git a/Gemfile b/Gemfile
index 7786982..55cd68c 100644
--- a/Gemfile
+++ b/Gemfile
@@ -29,7 +29,7 @@ gem 'omniauth-facebook',      '~> 3.0.0'
 gem 'omniauth-github',        '~> 1.1.1'
 gem 'omniauth-gitlab',        '~> 1.0.0'
 gem 'omniauth-google-oauth2', '~> 0.2.0'
-gem 'omniauth-kerberos',      '~> 0.3.0', group: :kerberos
+#gem 'omniauth-kerberos',      '~> 0.3.0', group: :kerberos
 gem 'omniauth-saml',          '~> 1.6.0'
 gem 'omniauth-shibboleth',    '~> 1.2.0'
 gem 'omniauth-twitter',       '~> 1.2.0'
diff --git a/app/helpers/commits_helper.rb b/app/helpers/commits_helper.rb
index 474041e..653ba3c 100644
--- a/app/helpers/commits_helper.rb
+++ b/app/helpers/commits_helper.rb
@@ -1,4 +1,5 @@
 # encoding: utf-8
+# encoding: utf-8
 module CommitsHelper
   # Returns a link to the commit author. If the author has a matching user and
   # is a member of the current @project it will link to the team member page.
diff --git a/bin/mail_room b/bin/mail_room
index 74a84f5..618c949 100755
--- a/bin/mail_room
+++ b/bin/mail_room
@@ -1,50 +1,16 @@
-#!/bin/sh
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'mail_room' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#

-cd $(dirname [=11=])/..
-app_root=$(pwd)
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)

-mail_room_pidfile="$app_root/tmp/pids/mail_room.pid"
-mail_room_logfile="$app_root/log/mail_room.log"
-mail_room_config="$app_root/config/mail_room.yml"
+require 'rubygems'
+require 'bundler/setup'

-get_mail_room_pid()
-{
-  local pid=$(cat $mail_room_pidfile)
-  if [ -z "$pid" ] ; then
-    echo "Could not find a PID in $mail_room_pidfile"
-    exit 1
-  fi
-  mail_room_pid=$pid
-}
-
-start()
-{
-  bin/daemon_with_pidfile $mail_room_pidfile bundle exec mail_room -q -c $mail_room_config >> $mail_room_logfile 2>&1
-}
:...skipping...
diff --git a/Gemfile b/Gemfile
index 7786982..55cd68c 100644
--- a/Gemfile
+++ b/Gemfile
@@ -29,7 +29,7 @@ gem 'omniauth-facebook',      '~> 3.0.0'
 gem 'omniauth-github',        '~> 1.1.1'
 gem 'omniauth-gitlab',        '~> 1.0.0'
 gem 'omniauth-google-oauth2', '~> 0.2.0'
-gem 'omniauth-kerberos',      '~> 0.3.0', group: :kerberos
+#gem 'omniauth-kerberos',      '~> 0.3.0', group: :kerberos
 gem 'omniauth-saml',          '~> 1.6.0'
 gem 'omniauth-shibboleth',    '~> 1.2.0'
 gem 'omniauth-twitter',       '~> 1.2.0'
diff --git a/app/helpers/commits_helper.rb b/app/helpers/commits_helper.rb
index 474041e..653ba3c 100644
--- a/app/helpers/commits_helper.rb
+++ b/app/helpers/commits_helper.rb
@@ -1,4 +1,5 @@
 # encoding: utf-8
+# encoding: utf-8
 module CommitsHelper
   # Returns a link to the commit author. If the author has a matching user and
   # is a member of the current @project it will link to the team member page.
diff --git a/bin/mail_room b/bin/mail_room
index 74a84f5..618c949 100755
--- a/bin/mail_room
+++ b/bin/mail_room
@@ -1,50 +1,16 @@
-#!/bin/sh
+#!/usr/bin/env ruby
+#
+# This file was generated by Bundler.
+#
+# The application 'mail_room' is installed as part of a gem, and
+# this file is here to facilitate running it.
+#

-cd $(dirname [=11=])/..
-app_root=$(pwd)
+require 'pathname'
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
+  Pathname.new(__FILE__).realpath)

-mail_room_pidfile="$app_root/tmp/pids/mail_room.pid"
-mail_room_logfile="$app_root/log/mail_room.log"
-mail_room_config="$app_root/config/mail_room.yml"
+require 'rubygems'
+require 'bundler/setup'

-get_mail_room_pid()
-{
-  local pid=$(cat $mail_room_pidfile)
-  if [ -z "$pid" ] ; then
-    echo "Could not find a PID in $mail_room_pidfile"
-    exit 1
-  fi
-  mail_room_pid=$pid
-}
-
-start()
-{
-  bin/daemon_with_pidfile $mail_room_pidfile bundle exec mail_room -q -c $mail_room_config >> $mail_room_logfile 2>&1
-}
-
-stop()
-{

正如您所说,您的错误是由于我们的文档不够清晰。对此我们深表歉意,我们会确保尽快将其弄清楚。

还有一些我们应该更正的地方。在第 6 步中,您将不得不执行 bundle 命令,并且它很可能会崩溃。那是因为我们告诉您退出 git 用户,但稍后需要这样做。因此,在执行之前先执行sudo su git

感谢您使用我们的产品!希望我的解决方案对您有所帮助。

编辑:为了迁移到 8.13.1 必须执行的更正是:

雨滴、独角兽和独角兽杀手宝石的版本必须在 Gemfile.lock 和 Gemfile 中更改,因为最新版本构建会与我们的 ruby 版本崩溃。 Raindrops 必须使用 0.15.0,Unicorn 应该使用 0.4.9,Unicorn-worker-killer 必须使用 0.4.2.

在执行第 2 步的结帐步骤之前,您必须使用 git stash 存储您的更改,执行结帐并弹出存储的内容,解决出现的任何合并问题。 (我只需要执行 git rm /opt/bitnami/apps/gitlab/htdocs/config/gitlab.yml.example 即可)。

我尽量总结修改的完整过程。

在第 2 步中,将 git checkout v8.x.y 替换为:

git stash
git checkout v8.x.y
git stash apply

第 4 步有一些不清楚的地方:bitnami 包已经 go 1.5.3。 我真的需要 go 1.6 吗?

另外,下载的go必须在/usr/local,它有硬编码的东西依赖/usr/local/go。您无法在其他任何地方安装它。

export PATH=$PATH:/usr/local/go/bin 应该是 export PATH=/usr/local/go/bin:$PATH 以便新安装的 go 优先于系统中的 go。

在第 6 步,您应该首先成为用户 "git":

sudo su git
bundle install --without development test mysql --deployment

但是然后:

bitnami@git:/opt/bitnami/apps/gitlab/htdocs$ sudo su git
git@git:/opt/bitnami/apps/gitlab/htdocs$ bundle install --without development test mysql --deployment
Warning: the running version of Bundler is older than the version that created the lockfile. We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
You are trying to install in deployment mode after changing
your Gemfile. Run `bundle install` elsewhere and add the
updated Gemfile.lock to version control.

You have deleted from the Gemfile:
* omniauth-kerberos (~> 0.3.0)

还缺少其他东西吗?

正如 ofaurax 所说,您必须取消注释 gem

'omniauth-kerberos', '~> 0.3.0', group: :kerberos

安装 kerberos 库(取决于您的发行版):

sudo apt-get install -y libpam-krb5 libkrb5-dev`.

从 8.13 升级到 8.14 怎么样?

我们必须在 Gemfile.lock 中使用相同的技巧:

raindrops (0.15.0)
unicorn (0.4.9)
unicorn-worker-killer (0.4.2)

但是

看板 return 404(这是其中一个错误...)

与 Zanderwar 相同的问题。 bitnami 团队何时应提供修复程序和从 8.11 到更高版本的打包升级计划?