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

2

Estou tentando instalar o Gitolite no meu Synology DiskStation, seguindo estas instruções .

Em Instale o Gitolite no DiskStation e execute o programa de instalação , quando eu executar o comando de instalação do Gitolite:

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

Eu recebo o seguinte erro:

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?

    
por Jay 31.05.2012 / 07:14

3 respostas

1

2 questões:

O novo GitoliteV3 (g3) não suporta a falta de um diretório 'logs', que deve estar presente por padrão em $HOME/.gitolite .
Veja 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 );

Crie um diretório de logs: mkdir -p $HOME/.gitolite/logs e reinicie a instalação .
Como sitearm (quem, eu só posso supor a partir do seu perfil vazio, é Sitaram Chamarty , o criador / mantenedor do Gitolite), isso não deveria ser necessário.
E da resposta abaixo do OP, isso não era necessário de qualquer maneira.

sitearm adiciona:

The LOGFILE error message is misleading; it happens when the installation directory is not in $PATH.

O compromisso mais recente em Common.pm (16 de junho de 2012) substituiu a mensagem de erro para para não referenciar mais o 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á, pois o shebang faz referência a /usr/bin/perl em vez de /usr/bin/env perl ...

Segunda edição:

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

Verifique se você tem o direito de fazer um link simbólico em /bin . Você é root? Como mencionado abaixo

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

(sem /bin ) manteria tudo em $HOME (problema de acesso de escrita no / bin)

Eu geralmente prefiro uma instalação local

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

(so ' -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 de https://github.com/sitaramc/gitolite
  • $HOME/gitolite/bin um diretório que eu adicionei ao meu $PATH .
por 31.05.2012 / 08:42
0

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 para $ HOME / bin, que existe e é gravável pelo usuário git.

Execute isso:

DiskStation> /volume1/homes/git/gitolite/install -ln
    
por 01.06.2012 / 05:25
0

eu corri o comando gitolite/install -ln /usr/bin/

Para mim, o erro de link simbólico ocorreu porque o usuário git não tinha as permissões necessárias para fazer o link simbólico para /usr/bin . Eu simplesmente adicionei o usuário git ao grupo wheel no arquivo /etc/group e isso funcionou como um encanto.

    
por 09.10.2015 / 17:23

Tags