Einrichten von Git, Pfadfehler beim Pushen/Klonen vom lokalen Speicherort zum NAS

Einrichten von Git, Pfadfehler beim Pushen/Klonen vom lokalen Speicherort zum NAS

Ich richte zum ersten Mal einen NAS-Server mit Git ein, also verzeihen Sie mir bitte die Anfängerfragen (das bedeutet auch, dass ich für alle ausführlichen Erklärungen, die Sie mir geben können, sehr dankbar bin, denn ich bin diesbezüglich ein bisschen wie ein Fisch auf dem Trockenen).

Folgendes habe ich bisher getan:

  1. Listenpunkt
  2. NAS einrichten
  3. Habe Git gemäß dieser Anweisungen installiert:http://www.wonko.de/2010/04/set-up-git-on-synology-nas.html(Ich habe es bis zum Ende von Schritt 5 geschafft)
  4. Habe Git auf meinem lokalen Computer am Laufen (habe git initdas erste Commit durchgeführt)

Im Moment versuche ich herauszufinden, wie ich Schritt 6 dieser Anleitung umsetzen kann (http://www.wonko.de/2010/04/set-up-git-on-synology-nas.html), damit ich Commits von meinem lokalen Computer verwenden git cloneund git pushan mein NAS senden kann.

Ich habe die Kommentare unter diesem Beitrag gelesen und Folgendes versucht:

  • Es wurde eine Datei mit dem Namen „ environmentGespeichert in meinem lokalen Home-Ordner:“ erstellt .ssh/environment und dort Folgendes eingegeben: PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin

  • Habe mich mit bei meinem NAS angemeldet ssh://root@ipaddresstonasund Folgendes eingegeben: cd /usr/bin ln -s /opt/bin/git*

Ich erhalte jedoch immer diese Ergebnisse:

Terminal auf meinem lokalen Rechner:

$ git remote -v
nas ssh://[email protected]/volume1/path/to/test (fetch)
nas ssh://[email protected]/volume1/path/to/test (push)
$ git push nas master
[email protected]'s password: 
sh: git-receive-pack: not found
fatal: The remote end hung up unexpectedly

Und wenn ich versuche, $PATHauf meinem lokalen Computer Folgendes einzugeben:

$ $PATH
-bash: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin: No such file or directory

Auf meinem NAS:

nas> cd /volume1/path/to/test
nas> ls
test.git

nas> $PATH
-sh: /opt/bin:/opt/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/syno/bin: not found

Außerdem nur ein Hinweis: Ich verwende Synology DS212J, das, glaube ich, „BusyBox“ verwendet, falls das hilft.

Ich bin wirklich verwirrt, wie ich Git für die Verwendung mit meinem NAS einrichte, wie ich Push-Aktionen auf mein NAS ausführen, wie ich svn checkoutauf einen anderen Computer klonen (oder das Gleiche tun) kann usw.

Antwort1

Der Pfad unter Unix ist eine Variable, die die Speicherorte verschiedener Programme enthält.

Wenn Sie einen Befehl wie eingeben whoami, durchsucht die Shell alle in Ihrem $PATH aufgelisteten Ordner.

Geben Sie nun which whoamiIhre Shell ein. Sie werden sehen, dass sich whoami wahrscheinlich in befindet /usr/bin/whoami.

Wenn Sie /usr/binin Ihrem Pfad haben, können Sie einfach whoamianstelle von eingeben /usr/bin/whoami. Das ist so etwas wie eine Abkürzung.

Der Artikel, den Sie gerade lesen, zeigt, dass git-upload-packdie Installation an einem Ort erfolgt, an dem die Shell nicht automatisch nach ausführbaren Dateien sucht. Sie müssen Ihrem Pfad /opt/binund hinzufügen /opt/sbin, damit die Shell „findet“.git-upload-pack

Es gibt mehrere Möglichkeiten, einem Pfad ein Verzeichnis hinzuzufügen. Ich bevorzuge es, es in /etc/profile.d abzulegen, es scheint jedoch, dass Busy Box in diesem Verzeichnis nicht „sucht“. Stattdessen muss es der Datei ~/.ssh/environment hinzugefügt werden. Die Umgebungsdatei wird analysiert, wenn ein Benutzer über SSH eine Verbindung zum Server herstellt.


Schritt 6

Verwenden Sie einen Texteditor, um die folgende Datei zu bearbeiten (wahrscheinlich existiert sie noch nicht).

/home/<yourUser>/.ssh/environment

Fügen Sie die folgende Zeile zu /home//.ssh/environment hinzu

export PATH=$PATH:/opt/bin:/opt/bin

Bearbeiten Sie dann die folgende Datei (hierfür müssen Sie als Root angemeldet sein):

/etc/ssh/sshd_config

In dieser Datei finden Sie den Satz#PermitUserEnvironment no

Entfernen Sie den Kommentar (#) und ändern Sie nein in ja

Starten Sie Ihren SSH-Dienst neu oder starten Sie einfach das gesamte Gerät neu.

Sie können testen, ob es funktioniert hat, indem Sie den folgenden Befehl ausführen

echo $PATH |grep '/opt/bin'

Wenn es etwas zurückgibt, sollte alles funktionieren.

Antwort2

Richten Sie einen RSA-Schlüssel ein. Fügen Sie die Quell-IP zur Liste der vertrauenswürdigen IPs auf der Remote-Site hinzu. Generieren Sie einen Schlüssel ohne Passwort.Führen Sie den Git-Daemon auf dem anderen Computer aus.

Testen Sie Ihre Authentifizierung sshauf dem Client-Computer.

verwandte Informationen