2

Я пытаюсь установить Gitolite на Synology DiskStation, следуя этим инструкциям.

При установке Gitolite на DiskStation и запуске программы установки я запускаю команду установки Gitolite:

DiskStation> /volume1/homes/git/gitolite/install -ln /bin

Я получаю следующую ошибку:

FATAL: have errors but logging failed!

2012-05-31.00:10:22 no GL_LOGFILE env var
2012-05-31.00:10:22 die could not symlink /volume1/home/git/gitolite/src/gitolite to /bin<<newline>> at /volume1/home/git/gitolite/install line 71<<newline>>

Я очень новичок во всем этом. Кто-нибудь знает, что это значит, и как я могу исправить эту ошибку?

3 ответа3

1

2 вопроса:

Новый GitoliteV3 (g3) не изящно обрабатывает отсутствие каталога 'logs', который должен присутствовать по умолчанию в $HOME/.gitolite .
Смотрите Rc.pm:

$rc{LOG_TEMPLATE} = "$ENV{HOME}/.gitolite/logs/gitolite-%y-%m.log";
$rc{GL_LOGFILE} = $ENV{GL_LOGFILE} ||= gen_lfn( $rc{LOG_TEMPLATE} );

Common.pm:

sub gl_log {
    # the log filename and the timestamp come from the environment. If we get
    # called even before they are set, we have no choice but to dump to STDERR
    # (and probably call "logger").

    logger_plus_stderr( "$ts no GL_LOGFILE env var", "$ts $msg" ) if not $ENV{GL_LOGFILE};
    open my $lfh, ">>", $ENV{GL_LOGFILE} or logger_plus_stderr( "open log failed: $!", $msg );

Создайте каталог журналов: mkdir -p $HOME/.gitolite/logs и перезапустите установку. ,
Поскольку sitearm (который, я могу только предположить из его пустого профиля, является Ситарам Чамарти , создатель / хранитель Gitolite), это не должно быть необходимо.
И из ответа ОП ниже , это не было нужно в любом случае.

Sitearm добавляет:

Сообщение об ошибке LOGFILE вводит в заблуждение; это происходит, когда каталог установки не находится в $PATH .

Последний коммит на Common.pm (16 июня 2012 г.) действительно заменил сообщение об ошибке, чтобы больше не ссылаться на загадочный GL_LOGFILE:

logger_plus_stderr( "errors found before logging could be setup", "$msg" ) if not $ENV{GL_LOGFILE};

Обратите внимание, что если у вас есть собственный perl в нестандартном пути, ни один из этих сценариев установки не будет работать, поскольку их shebang ссылается на /usr/bin/perl вместо /usr/bin/env perl ...


Второй выпуск:

could not symlink /volume1/home/git/gitolite/src/gitolite to /bin

Проверьте, есть ли у вас права на символическую ссылку в /bin . Вы рут? Как упомянуто ниже

DiskStation> /volume1/homes/git/gitolite/install -ln

(без /bin) будет держать все под $HOME (нет проблемы доступа к записи /bin)


Я вообще предпочитаю локальную установку

 $HOME/gitolite/github/install -to $HOME/gitolite/bin

(таким образом, ' -to ' вместо ' -ln ' с абсолютным путем в моей учетной записи, а не системным путем) с помощью:

  • github - имя локального клона https://github.com/sitaramc/gitolite
  • $HOME/gitolite/bin - каталог, который я добавил в мой $PATH .
0

Я выполнил команду gitolite/install -ln /usr/bin/

Для меня ошибка символической ссылки произошла из-за того, что у пользователя git нет необходимых разрешений на символическую ссылку на /usr/bin . Я просто добавил пользователя git в группу wheel в /etc/group и это сработало как шарм.

0

Следующая команда была опечаткой:

DiskStation> /volume1/homes/git/gitolite/install -ln /bin

Ранее в этом посте вы установили каталог $ HOME/bin для пользователя git. Запустите ту же команду, но оставьте указанный аргумент каталога /bin отключенным, и gitolite по умолчанию будет иметь значение $ HOME/bin, которое существует и доступно для записи пользователю git.

Запустите это вместо:

DiskStation> /volume1/homes/git/gitolite/install -ln

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .