Gitious: git-poller не запускается

Я просто установил новую версию gitorious на свой сервер и хотел проверить ее, когда обнаружил, что git-poller не запускается. И он тоже не хотел начинать.

Я следовал этому руководству: http://gitorious.org/gitorious/pages/DebianSqueezeInstallation, моя система - Debian Squeeze, а Ruby -v говорит ruby ​​1.8.7

Все из этого руководства работает до сих пор. Система работает и работает, но я не могу запустить опрос. Все записи опроса в журналы следующие:

TMP / ИДП / poller.log

*** below you find the most recent exception thrown, this will be likely (but not certainly) the exception that made the application exit abnormally ***
#<MissingSourceFile: no such file to load -- user_auto_completions_helper>
*** below you find all exception objects found in memory, some of them may have been thrown in your application, others may just be in memory because they are standard exceptions ***
#<NoMemoryError: failed to allocate memory>
#<SystemStackError: stack level too deep>
#<fatal: exception reentered>
#<LoadError: no such file to load -- daemons>
#<TypeError: Expected a filter, an endpoint, a callable or a list of any of these.>
#<NameError: uninitialized constant ActiveMessaging>
#<MissingSourceFile: no such file to load -- user_auto_completions_helper>

TMP / ИДП / poller.output

/home/clients/client1/web85/web/vendor/rails/activesupport/lib/active_support/dependencies.rb:443:in `load_missing_constant': uninitialized constant ActiveMessaging (NameError)
        from /home/clients/client1/web85/web/vendor/rails/activesupport/lib/active_support/dependencies.rb:80:in `const_missing'
        from /home/clients/client1/web85/web/vendor/rails/activesupport/lib/active_support/dependencies.rb:92:in `const_missing'
        from /home/clients/client1/web85/web/lib/gitorious/messaging/stomp_poller.rb:13
        from /var/lib/gems/1.8/gems/daemons-1.1.0/lib/daemons/application.rb:203:in `load'
        from /var/lib/gems/1.8/gems/daemons-1.1.0/lib/daemons/application.rb:203:in `start_load'
        from /var/lib/gems/1.8/gems/daemons-1.1.0/lib/daemons/application.rb:292:in `start'
    from /var/lib/gems/1.8/gems/daemons-1.1.0/lib/daemons/controller.rb:70:in `run'
    from /var/lib/gems/1.8/gems/daemons-1.1.0/lib/daemons.rb:143:in `run'
    from /var/lib/gems/1.8/gems/daemons-1.1.0/lib/daemons/cmdline.rb:112:in `call'
    from /var/lib/gems/1.8/gems/daemons-1.1.0/lib/daemons/cmdline.rb:112:in `catch_exceptions'
    from /var/lib/gems/1.8/gems/daemons-1.1.0/lib/daemons.rb:142:in `run'
    from script/poller:30

Я использую ispconfig в качестве инструмента управления веб-сервером, отсюда и странные пути. Я изменил все пути от инструкции до нужной.

У кого-нибудь есть идея? Я могу предоставить больше материала, если это необходимо, но я просто не знаю, что может быть полезным. Это мой первый вопрос по stackru, поэтому, пожалуйста, не стреляйте в меня, если я не все сделал правильно:)

1 ответ

Решение

После долгих чтений, проб и ошибок (я начал примерно 3 раза с нуля, пробуя Ruby 1.9.2 и REE как из исходного кода, так и с помощью RVM), я попробовал другое руководство [1], которое имело одно большое отличие от первого: предложил скачать и установить Rubygems 1.4.2 вместо apt-версии Rubygems.

Сначала я не хотел этого делать, потому что боялся, что это сломает мою систему (на этом сервере работает много других вещей, включая Redmine), но после переустановки всех недостающих гемов все снова работал

Теперь все (Gitorious и Redmine) работает с apt-версией Ruby 1.8.7 и не-apt-версией Rubygems 1.4.2.

[1] http://cjohansen.no/en/ruby/setting_up_gitorious_on_your_own_server/

Так как я наткнулся на другую, надеюсь последнюю проблему: я установил gitorious для своего стандартного веб-пользователя (чтобы соблюдать политику ISPConfig) и создал нового git-пользователя для репозиториев. Чтобы иметь возможность обмениваться данными, я добавил обе группы пользователей и зафиксировал права доступа.

Проблема, с которой я столкнулся, заключалась в том, что git poller добавил новые репозитории для своих собственных, что означает "git:git" вместо "git:sharedgroup". Чтобы это исправить, вам просто нужно установить идентификатор группы по умолчанию для git-папки (/var/git в моем случае):

chgrp -R <group_name> /var/git
chmod -R g+s /var/git

Похоже, что две вышеупомянутые команды сработали, но добавление нового проекта снова сломало все, потому что git-poller добавил папку для проекта и репозиторий, в результате чего папка-репозиторий снова имела неправильного владельца.

Я (надеюсь) исправил это, изменив мой скрипт /etc/init.d/git-poller из

/bin/su - git -c "cd /var/www/git.mydomain.com/web;RAILS_ENV=production script/poller $@"

в

/bin/su - git -c "newgrp <group_name> && cd /var/www/git.mydomain.com/web;RAILS_ENV=production script/poller $@"
Другие вопросы по тегам