![Instalando o Gitolite no NAS - FATAL: há erros, mas o log falhou](https://rvso.com/image/1316778/Instalando%20o%20Gitolite%20no%20NAS%20-%20FATAL%3A%20h%C3%A1%20erros%2C%20mas%20o%20log%20falhou.png)
Estou tentando instalar o Gitolite em meu Synology DiskStation, seguindo estesinstruções.
SobInstale o Gitolite no DiskStation e execute a configuração, quando executo o comando de instalação do Gitolite:
DiskStation> /volume1/homes/git/gitolite/install -ln /bin
Estou tendo o erro a seguir:
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>>
Eu sou muito novo em tudo isso. Alguém sabe o que isso significa e como posso corrigir esse erro?
Responder1
2 questões:
O novo GitoliteV3 (g3) não lida bem com a falta de um diretório 'logs', que deveria estar presente por padrão no $HOME/.gitolite
.
VerRc.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 );
Crie um diretório de logs: .mkdir -p $HOME/.gitolite/logs
e reinicie a instalação
Comobraço do site(que, só posso presumir pelo seu perfil vazio, éSitaram Chamarty, o criador/mantenedor do Gitolite), isso não deveria ser necessário.
E dos OPresponda abaixo, essenão foinecessário de qualquer maneira.
sitearm adiciona:
A
LOGFILE
mensagem de erro é enganosa; isso acontece quando o diretório de instalação não está em$PATH
.
Oúltimo commitem Common.pm
(16 de junho de 2012) de fato substituiu a mensagem de erro paranãoreferência mais ao misterioso GL_LOGFILE
:
logger_plus_stderr( "errors found before logging could be setup", "$msg" ) if not $ENV{GL_LOGFILE};
Observe que se você tiver seu próprio perl em um caminho não padrão, nenhum desses scripts de instalação funcionará, já que suas referências shebang /usr/bin/perl
em vez de /usr/bin/env perl
...
Segunda questão:
could not symlink /volume1/home/git/gitolite/src/gitolite to /bin
Verifique se você tem direitos para criar links simbólicos em arquivos
Como mencionado abaixo/bin
. Você é root?
DiskStation> /volume1/homes/git/gitolite/install -ln
(sem /bin
) manteria tudo em $HOME
(sem problema de acesso de escrita /bin)
Eu geralmente prefiro uma instalação local
$HOME/gitolite/github/install -to $HOME/gitolite/bin
(então ' -to
' em vez de ' -ln
', com um caminho absoluto na minha conta em vez de um caminho do sistema) com:
github
o nome do clone local dehttps://github.com/sitaramc/gitolite
$HOME/gitolite/bin
um diretório que adicionei ao meu arquivo$PATH
.
Responder2
O seguinte comando foi um erro de digitação:
DiskStation> /volume1/homes/git/gitolite/install -ln /bin
Anteriormente na postagem, você configurou um diretório $HOME/bin para o usuário git. Execute o mesmo comando, mas deixe o argumento do diretório /bin especificado desativado, e o gitolite será padronizado como $HOME/bin que existe e pode ser gravado pelo usuário git.
Em vez disso, execute isto:
DiskStation> /volume1/homes/git/gitolite/install -ln
Responder3
eu executei o comandogitolite/install -ln /usr/bin/
Para mim, o erro do link simbólico ocorreu porque o git
usuário não tinha as permissões necessárias para criar um link simbólico para /usr/bin
. Simplesmente adicionei o git
usuário ao wheel
grupo no /etc/group
arquivo e funcionou perfeitamente.