![Instalación de Gitolite en NAS - FATAL: tiene errores pero falla el registro](https://rvso.com/image/1316778/Instalaci%C3%B3n%20de%20Gitolite%20en%20NAS%20-%20FATAL%3A%20tiene%20errores%20pero%20falla%20el%20registro.png)
Estoy intentando instalar Gitolite en mi Synology DiskStation, siguiendo estosinstrucciones.
BajoInstale Gitolite en DiskStation y ejecute la configuración, cuando ejecuto el comando de instalación de Gitolite:
DiskStation> /volume1/homes/git/gitolite/install -ln /bin
Obtuve el siguiente error:
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>>
Soy muy nuevo en todo esto. ¿Alguien sabe qué significa esto y cómo puedo solucionar este error?
Respuesta1
2 cuestiones:
El nuevo GitoliteV3 (g3) no maneja correctamente la falta de un directorio 'logs', que debería estar presente de forma predeterminada en $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 );
Cree un directorio de registros: .mkdir -p $HOME/.gitolite/logs
y reinicie la instalación.
Comobrazo de sitio(quien, sólo puedo suponer por su perfil vacío, esSitaram Chamarty, el creador/mantenedor de Gitolite), esto no debería ser necesario.
Y de los OPResponda abajo, esteno fuenecesario de todos modos.
brazo del sitio agrega:
El
LOGFILE
mensaje de error es engañoso; sucede cuando el directorio de instalación no está en$PATH
.
Elúltimo compromisoel Common.pm
(16 de junio de 2012) de hecho ha reemplazado el mensaje de error paranoreferencia más lo misterioso GL_LOGFILE
:
logger_plus_stderr( "errors found before logging could be setup", "$msg" ) if not $ENV{GL_LOGFILE};
Tenga en cuenta que si tiene su propio Perl en una ruta no estándar, ninguno de esos scripts de instalación funcionará, ya que su shebang hace referencia /usr/bin/perl
a un /usr/bin/env perl
...
Segundo problema:
could not symlink /volume1/home/git/gitolite/src/gitolite to /bin
Compruebe si tiene derechos para realizar enlaces simbólicos en formato
Como se menciona abajo/bin
. ¿Eres root?
DiskStation> /volume1/homes/git/gitolite/install -ln
(sin /bin
) mantendría todo debajo $HOME
(sin problema de acceso de escritura /bin)
Generalmente prefiero una instalación local.
$HOME/gitolite/github/install -to $HOME/gitolite/bin
(entonces ' -to
' en lugar de ' -ln
', con una ruta absoluta en mi cuenta en lugar de una ruta del sistema) con:
github
el nombre del clon local dehttps://github.com/sitaramc/gitolite
$HOME/gitolite/bin
un directorio que he agregado a mi$PATH
.
Respuesta2
El siguiente comando fue un error tipográfico:
DiskStation> /volume1/homes/git/gitolite/install -ln /bin
Al principio de la publicación, le pide que configure un directorio $HOME/bin para el usuario de git. Ejecute el mismo comando pero deje el argumento del directorio /bin especificado desactivado y gitolite utilizará de forma predeterminada $HOME/bin, que existe y el usuario de git puede escribir.
Ejecute esto en su lugar:
DiskStation> /volume1/homes/git/gitolite/install -ln
Respuesta3
Ejecuté el comandogitolite/install -ln /usr/bin/
Para mí, el error de enlace simbólico se debió a que el git
usuario no tenía los permisos necesarios para realizar un enlace simbólico /usr/bin
. Simplemente agregué al git
usuario al wheel
grupo en /etc/group
el archivo y funcionó de maravilla.