Sidekiq не работает при установке GitLab 6.0.0

Я выполнил инструкции по установке GitLab 6.0.0: https://github.com/gitlabhq/gitlabhq/blob/6-0-stable/doc/install/installation.md

Когда я добираюсь до «Проверить статус приложения» и запускаю

sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production

Я вижу "Версия Bundler: неизвестна":

System information
System:         Ubuntu 12.04
Current User:   git
Using RVM:      no
Ruby Version:   1.9.3p0
Gem Version:    1.8.11
Bundler Version:unknown
Rake Version:   10.1.0

GitLab information
Version:        6.0.0
Revision:       5246d63
Directory:      /home/git/gitlab
DB Adapter:     mysql2
URL:            http://my-server
HTTP Clone URL: http://my-server/some-project.git
SSH Clone URL:  git@my-server:some-project.git
Using LDAP:     no
Using Omniauth: no

GitLab Shell
Version:        1.7.0
Repositories:   /home/git/repositories/
Hooks:          /home/git/gitlab-shell/hooks/
Git:            /usr/bin/git

bundle --version и sudo -u git -H bundle --version оба показывают 1.3.5, поэтому я не уверен, почему для приведенной выше команды отображается "неизвестно"...

... поэтому я продолжаю и запускаю sudo service gitlab start, и он говорит: «Служба GitLab запущена», но кажется, что это неправда, поскольку sudo service gitlab status говорит: «Служба GitLab не запущена», а /home/git/gitlab/tmp/pids пуст, но имеет разрешения: " drwxr-xr-x" для пользователя и группы "git".

axilleas удалось обойти это, создав каталог, но это не моя проблема.

...Я, вероятно, не должен ожидать, что это сработает отсюда, но я все равно продолжаю, но теперь он жалуется на sidekiq:

sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production

Checking Environment ...

Git configured for git user? ... yes
Has python2? ... yes
python2 is supported version? ... yes

Checking Environment ... Finished

Checking GitLab Shell ...

GitLab Shell version >= 1.7.0 ? ... OK (1.7.0)
Repo base directory exists? ... yes
Repo base directory is a symlink? ... no
Repo base owned by git:git? ... yes
Repo base access is drwxrws---? ... yes
post-receive hook up-to-date? ... yes
post-receive hooks in repos are links: ... can't check, you have no projects

Checking GitLab Shell ... Finished

Checking Sidekiq ...

Running? ... no
  Try fixing it:
  sudo -u git -H bundle exec rake sidekiq:start RAILS_ENV=production
  For more information see:
  doc/install/installation.md in section "Install Init Script"
  see log/sidekiq.log for possible errors
  Please fix the error above and rerun the checks.

Checking Sidekiq ... Finished

Checking GitLab ...

Database config exists? ... yes
Database is SQLite ... no
All migrations up? ... /home/git/gitlab/vendor/bundle/ruby/1.9.1/bin/rake: No such file or directory - bundle exec rake db:migrate:status
yes
GitLab config exists? ... yes
GitLab config outdated? ... no
Log directory writable? ... yes
Tmp directory writable? ... yes
Init script exists? ... yes
Init script up-to-date? ... yes
Projects have satellites? ... can't check, you have no projects
Redis version >= 2.0.0? ... yes
Your git bin path is "/usr/bin/git"
Git version >= 1.7.10 ? ... yes (1.8.3)

Checking GitLab ... Finished

adril Столкнулся с этой проблемой (но его упаковщик работает правильно). Он следует совету, но по какой-то причине в его файле журнала гораздо больше информации, чем в моем — в моем всего одна строка:

nohup: не удалось выполнить команду `bundle': нет такого файла или каталога

...может быть, это связано со строкой "Нет такого файла или каталога - bundle exec rake db:migrate:status"?

Нет, я думаю, что можно безопасно игнорировать? - это работает нормально: sudo -u git -H bundle exec rake db:migrate:status RAILS_ENV=production

Изменить: когда я запускаю echo $PATH, я вижу /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games.

Я добавил журнал в lib/tasks/gitlab/info.rake, и оказалось, что gitlab использует другой путь:

/home/git/gitlab/vendor/bundle/ruby/1.9.1/bin:/usr/bin:/bin:/usr/sbin:/sbin

бандл установлен по адресу /usr/local/bin


person Nicholas Albion    schedule 22.08.2013    source источник
comment
Когда я запускаю bundle --version, я вижу Bundler version 1.3.5   -  person Nicholas Albion    schedule 23.08.2013
comment
Когда я запускаю echo $PATH, я вижу /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games. пакет установлен в /usr/local/bin. Я добавил логирование в lib/tasks/gitlab/info.rake, и оказалось, что gitlab использует другой путь: /home/git/gitlab/vendor/bundle/ruby/1.9.1/bin:/usr/bin:/bin:/usr/sbin:/sbin   -  person Nicholas Albion    schedule 23.08.2013


Ответы (4)


Я не уверен, почему проблема существует и как ее исправить в коде, но есть простой обходной путь:

sudo ln -s /usr/local/bin/bundle /usr/bin/bundle
person Nicholas Albion    schedule 04.09.2013

Можете ли вы попробовать запустить сбойные команды в git-пользователе? Я имею в виду:

su
su - git
cd gitlab/
run commands..

Возможно, sudo меняет ваш путь, как описано здесь. Так что на вашем месте я бы попытался установить пакет снова, а затем проверил приведенные выше ответы (если это ваш случай).

person axil    schedule 23.08.2013
comment
Я думаю, что один из сценариев меняет путь. Я создал символическую ссылку на пути, который ищет GitLab, чтобы указать на фактическое местоположение упаковщика, и теперь все это работает. - person Nicholas Albion; 26.08.2013
comment
@NicholasAlbion: Было бы неплохо, если бы вы могли опубликовать свое исправление в качестве ответа и пометить его как ответ на ваш вопрос ... - person MensSana; 03.09.2013

visudo
По умолчанию secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/rvm/gems/ruby-1.9.3-p392/bin:/usr/local/rvm/gems /ruby-1.9.3-p392@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p392/bin

person Leslie    schedule 24.10.2013

Я знаю, что это старо, но я добавлю немного информации, так как у меня есть gitlab, работающий на FreeBSD, и мне пришлось изменить несколько вещей. Может быть, это будет полезно для тех, кто ищет решение, как я.

Для меня проблема Sidekiq была вызвана неправильной командой в check.rake. Сценарий использует ps ux, который обрезает вывод, если он слишком длинный. Сценарий (в моей текущей версии) проверял его через регулярное выражение, и мой ps показывает процесс как «ruby20: sidekiq 2.x.x», а вывод ps ux обрезается вокруг sidekiq. Это будет запущено также в Linux. Решение — добавьте аргумент «w» к ps, например:

 Gitlab::Popen.popen(%W(ps wux)

Проверка сценария инициализации завершится ошибкой, если он установлен в другом каталоге, например У меня это как /usr/local/etc/rc.d/gitlab. Существует запись script_path для омнибуса и не омнибуса.

person minus    schedule 25.02.2015