Instalando o Gitolite no NAS - FATAL: há erros, mas o log falhou

Instalando o Gitolite no NAS - FATAL: há erros, mas o log falhou

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} );

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 );

Crie um diretório de logs: mkdir -p $HOME/.gitolite/logse 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 LOGFILEmensagem 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/perlem 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 /bin. Você é root? Como mencionado abaixo

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:

  • githubo nome do clone local dehttps://github.com/sitaramc/gitolite
  • $HOME/gitolite/binum 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 gitusuário não tinha as permissões necessárias para criar um link simbólico para /usr/bin. Simplesmente adicionei o gitusuário ao wheelgrupo no /etc/grouparquivo e funcionou perfeitamente.

informação relacionada