![Установка Gitolite на NAS - FATAL: есть ошибки, но регистрация не удалась](https://rvso.com/image/1316778/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0%20Gitolite%20%D0%BD%D0%B0%20NAS%20-%20FATAL%3A%20%D0%B5%D1%81%D1%82%D1%8C%20%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8%2C%20%D0%BD%D0%BE%20%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F%20%D0%BD%D0%B5%20%D1%83%D0%B4%D0%B0%D0%BB%D0%B0%D1%81%D1%8C.png)
Я пытаюсь установить 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} );
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.pm
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
. Вы 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
файле, и это сработало как по маслу.