Установка Gitolite на NAS - FATAL: есть ошибки, но регистрация не удалась

Установка Gitolite на NAS - FATAL: есть ошибки, но регистрация не удалась

Я пытаюсь установить 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>>

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

решение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), это не должно быть необходимо.
И от OPответ ниже, этотне былов любом случае нужно.

sitearm добавляет:

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

Theпоследний коммит(16 июня Common.pm2012 г.) действительно заменил сообщение об ошибке, чтобынетссылка больше не таинственная 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. Вы root? Как указано ниже

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.

решение2

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

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

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

Вместо этого выполните следующее:

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

решение3

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

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

Связанный контент