![Gitolite auf NAS installieren – SCHWERWIEGEND: Es treten Fehler auf, aber die Protokollierung ist fehlgeschlagen.](https://rvso.com/image/1316778/Gitolite%20auf%20NAS%20installieren%20%E2%80%93%20SCHWERWIEGEND%3A%20Es%20treten%20Fehler%20auf%2C%20aber%20die%20Protokollierung%20ist%20fehlgeschlagen..png)
Ich versuche, Gitolite auf meiner Synology DiskStation zu installieren, und zwar mit diesenAnweisungen.
UnterInstallieren Sie Gitolite auf der DiskStation und führen Sie das Setup aus, wenn ich den Gitolite-Installationsbefehl ausführe:
DiskStation> /volume1/homes/git/gitolite/install -ln /bin
Ich erhalte die folgende Fehlermeldung:
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>>
Ich bin in all dem völlig neu. Weiß jemand, was das bedeutet und wie ich diesen Fehler beheben kann?
Antwort1
2 Probleme:
Das neue GitoliteV3 (g3) kommt mit dem Fehlen eines „logs“-Verzeichnisses, das standardmäßig in vorhanden sein sollte, nicht gut zurecht $HOME/.gitolite
.
SieheRc.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 );
Erstellen Sie ein Protokollverzeichnis: .mkdir -p $HOME/.gitolite/logs
und starten Sie die Installation neu
Alssitearm(der, wie ich anhand seines leeren Profils nur annehmen kann,Sitaram Chamarty, der Ersteller/Betreuer von Gitolite), sollte dies nicht nötig sein.
Und aus der Sicht des OPAntwort unten, Daswar nichtwird sowieso benötigt.
sitearm fügt hinzu:
Die
LOGFILE
Fehlermeldung ist irreführend; sie tritt auf, wenn sich das Installationsverzeichnis nicht in befindet$PATH
.
Derletztes Commitam Common.pm
(16. Juni 2012) hat die Fehlermeldung tatsächlich ersetzt, umnichtVerweisen Sie mehr auf das Geheimnisvolle GL_LOGFILE
:
logger_plus_stderr( "errors found before logging could be setup", "$msg" ) if not $ENV{GL_LOGFILE};
Beachten Sie, dass keines dieser Installationsskripte funktioniert, wenn Sie Ihr eigenes Perl in einem nicht standardmäßigen Pfad haben, da deren Shebang-Referenzen /usr/bin/perl
anstelle von /usr/bin/env perl
... vorliegen.
Zweites Problem:
could not symlink /volume1/home/git/gitolite/src/gitolite to /bin
Überprüfen Sie, ob Sie über die Rechte zum Erstellen symbolischer Links verfügen
Wie unten erwähnt/bin
. Sind Sie Root?
DiskStation> /volume1/homes/git/gitolite/install -ln
(ohne /bin
) würde alles darunter halten $HOME
(kein Problem mit /bin-Schreibzugriff)
Ich bevorzuge grundsätzlich eine lokale Installation
$HOME/gitolite/github/install -to $HOME/gitolite/bin
(also ' -to
' statt ' -ln
', mit einem absoluten Pfad in meinem Konto statt einem Systempfad) mit:
github
der Name des lokalen Klons vonhttps://github.com/sitaramc/gitolite
$HOME/gitolite/bin
ein Verzeichnis, das ich zu meinem hinzugefügt habe$PATH
.
Antwort2
Der folgende Befehl war ein Tippfehler:
DiskStation> /volume1/homes/git/gitolite/install -ln /bin
Weiter oben im Beitrag wurde Ihnen gesagt, dass Sie ein $HOME/bin-Verzeichnis für den Git-Benutzer einrichten müssen. Führen Sie denselben Befehl aus, lassen Sie jedoch das angegebene /bin-Verzeichnisargument weg. Gitolite verwendet dann standardmäßig $HOME/bin, das existiert und in das der Git-Benutzer schreiben kann.
Führen Sie stattdessen Folgendes aus:
DiskStation> /volume1/homes/git/gitolite/install -ln
Antwort3
Ich habe den Befehl ausgeführtgitolite/install -ln /usr/bin/
Bei mir lag der Symlink-Fehler daran, dass der git
Benutzer nicht über die erforderlichen Berechtigungen zum Erstellen eines Symlinks verfügte /usr/bin
. Ich habe den git
Benutzer einfach zur wheel
Gruppe in /etc/group
der Datei hinzugefügt und das hat wunderbar funktioniert.