Installation von Gitolite auf NAS - FATAL: Fehler, aber Protokollierung fehlgeschlagen

2787
Jay

Ich versuche, Gitolite auf meiner Synology DiskStation zu installieren. Befolgen Sie diese Anweisungen .

Unter Installieren gitolite auf der Diskstation und Ausführen von Setup, wenn ich die gitolite Befehl Installation ausgeführt:

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

Ich erhalte 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 bei all dem sehr neu. Weiß jemand, was das bedeutet und wie ich diesen Fehler beheben kann?

2

3 Antworten auf die Frage

1
VonC

2 Ausgaben:

Das neue GitoliteV3 (g3) behandelt das fehlende Protokollverzeichnis nicht ordnungsgemäß. Dieses Verzeichnis sollte standardmäßig in vorhanden sein $HOME/.gitolite.
Siehe Rc.pm :

$rc = "$ENV/.gitolite/logs/gitolite-%y-%m.log"; $rc = $ENV ||= gen_lfn( $rc ); 

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; open my $lfh, ">>", $ENV or logger_plus_stderr( "open log failed: $!", $msg ); 

Erstellen Sie ein Protokollverzeichnis: mkdir -p $HOME/.gitolite/logsund starten Sie die Installation erneut.
Als Sitearm (von dem ich nur von seinem leeren Profil ausgehen kann, Sitaram Chamarty, der Schöpfer / Betreuer von Gitolite), sollte dies nicht erforderlich sein.
Und aus der Antwort des OP unten war dies ohnehin nicht nötig.

sitearm fügt hinzu:

Die LOGFILEFehlermeldung ist irreführend. Dies geschieht, wenn sich das Installationsverzeichnis nicht befindet $PATH.

Das letzte Commit am Common.pm(16. Juni 2012) hat die Fehlermeldung tatsächlich ersetzt, um das Rätselhafte nicht mehr zu erwähnen GL_LOGFILE:

logger_plus_stderr( "errors found before logging could be setup", "$msg" ) if not $ENV; 

Wenn Sie über ein eigenes Perl in einem nicht standardmäßigen Pfad verfügen, funktionieren keine dieser Installationsskripte, da ihre Shebang-Verweise /usr/bin/perlanstelle von /usr/bin/env perl...


Zweite Ausgabe:

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

Prüfen Sie, ob Sie die Rechte für den Symlink besitzen /bin. Bist du wurzel Wie unten erwähnt

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

(ohne /bin) würde alles unter $HOME(no / bin Schreibzugriffsproblem) halten


Ich bevorzuge generell eine lokale Installation

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

(also ' -to' statt ' -ln', mit einem absoluten Pfad in meinem Konto anstelle eines Systempfads) mit:

  • github der Name des lokalen Klons von https://github.com/sitaramc/gitolite
  • $HOME/gitolite/binein Verzeichnis, das ich meinem hinzugefügt habe $PATH.
Bitte schlagen Sie keine Lösungen vor, bei denen etwas nicht in der Dokumentation enthalten ist. `mkdir -p ...` ist ein solcher wohlmeinender aber falscher Vorschlag. Wenn Sie es für erforderlich halten, lassen Sie mich wissen, dass in meiner Dokumentation etwas fehlt, und wir können es besprechen. Die LOGFILE-Fehlermeldung ist irreführend. Dies geschieht, wenn sich das Installationsverzeichnis nicht in $ PATH befindet. Bitte führen Sie `./install -h` aus, um Informationen zu den verschiedenen Optionen zu erhalten. vor 12 Jahren 0
@sitaram ok, Antwort bearbeitet. Das `mkdir` ist das geringste meiner Probleme mit g3: Alle Ihre Skripts verweisen auf ein` #! / usr / bin / perl`, das mit meiner nicht standardmäßigen Perl-Installation nicht kompatibel ist. Ein `#! / Usr / bin / env perl` wäre bequemer. VonC vor 12 Jahren 0
0
Ryan

Der folgende Befehl war ein Tippfehler:

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

Früher in diesem Beitrag haben Sie ein Verzeichnis $ HOME / bin für den git-Benutzer eingerichtet. Führen Sie denselben Befehl aus, aber lassen Sie das angegebene Argument / bin aus, und gitolite verwendet standardmäßig $ HOME / bin, das vorhanden ist und vom git-Benutzer beschrieben werden kann.

Führen Sie das stattdessen aus:

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

Ich habe den Befehl ausgeführt gitolite/install -ln /usr/bin/

Für mich war der Symlink-Fehler darauf zurückzuführen, dass der gitBenutzer nicht über die erforderlichen Berechtigungen für den Symlink verfügt /usr/bin. Ich habe einfach den gitBenutzer zu einer wheelGruppe in einer /etc/groupDatei hinzugefügt und das hat wie ein Zauber funktioniert.