sudo:bundle:升级GitLab时找不到命令

时间:2016-06-15 14:22:48

标签: gitlab

我正在尝试按照https://gitlab.com/gitlab-org/gitlab-ee/blob/master/doc/update/8.7-ce-to-ee.md的说明将我们的GitLab CE服务器升级到GitLab EE

服务器是CentOS 6.7,最初由

安装GitLab CE
$ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
$ sudo yum install gitlab-ce

目前的版本是

$ rpm -q gitlab-ce
gitlab-ce-8.7.5-ce.0.el6.x86_64

我按照上面链接的the upgrade guide步骤操作,但收到错误

$ cd /home/git/gitlab
$ sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production
sudo: bundle: command not found

我从之前的工作和other questions here了解到这个问题。我认为根本原因是我们已经从rpm安装了should use "gitlab-rake" instead of "bundle exec rake"

这足以解决上述问题,但the guide中的后续步骤包括

$ sudo -u git -H bundle install ...

似乎gitlab-rake不适用于此,所以我需要实际使用bundle命令。但我不知道哪一个 - 磁盘上目前有19个不同的文件叫.../bin/bundle,其中7个来自gitlab rpm。

所以:当指南告诉我

时,我应该使用哪个“捆绑”命令
sudo -u git -H bundle install ....

1 个答案:

答案 0 :(得分:1)

这可能会或可能不会对您的具体情况有所帮助,但我在CentOS 7上运行的GitLab CE(社区版)遇到了类似的问题。一切都运行顺利,但在尝试运行一些记录的服务命令时使用bundle,我发现bundle不在任何人的$PATH中:既不是root用户也不是git用户。

最后,systemd向我指出了正确的环境,即:

# systemctl status gitlab-runsvdir.service | grep Loaded
Loaded: loaded (/usr/lib/systemd/system/gitlab-runsvdir.service; enabled; vendor preset: disabled)
# grep '^Exec' /usr/lib/systemd/system/gitlab-runsvdir.service
ExecStart=/opt/gitlab/embedded/bin/runsvdir-start
# grep PATH /opt/gitlab/embedded/bin/runsvdir-start
PATH=/opt/gitlab/bin:/opt/gitlab/embedded/bin:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin

Etvoilà。

该脚本(/opt/gitlab/embedded/bin/runsvdir-start)还包含一些脚手架来设置正确的运行时环境,这对于在适当的地方进行研究和应用非常有用。

显然,YMMV,特别是如果您没有在systemd下运行GitLab,但类似的方法可能适用于其他init系统。

最后值得注意的是(正如原始q中所指出的),任何rake命令都应该使用gitlab-rake运行。