Erstellen eines Remote-GIT-Servers auf dem OSX-Client (Snow Leopard) für die Synchronisierung mit dem lokalen GOT Replay von XCode 4 [geschlossen]

8

Für diejenigen, die ihr eigenes Git-Repository auf einer Remote-OSX Snow Leopard-Client-Box erstellen möchten, dann synchronisieren Sie es über SSH von XCode 4.1 - lesen Sie weiter.

Ich habe es geschafft, dies zur Arbeit zu bringen, aber ich denke, es könnte für andere hilfreich sein, die sich jetzt im selben Boot ausziehen, um die Schritte zu lesen, die ich gemacht habe, und für jeden mit mehr Erfahrung als ich, um darauf hinzuweisen, wo ich Dinge besser machen könnte (und vielleicht hilfreiche Screenshots usw. enthalten).

Ich habe gerade erfolgreich ein funktionierendes Remote-Git-Repository auf einem freien Snow Leopard MacMini erstellt und getestet, es mit XCode 4.1 zu synchronisieren, mit einem lokalen Git-Repo (dem lokalen Repo-Standard für XCode); leider stellt sich heraus, dass es eine Menge gibt, die man richtig machen muss, damit dies funktioniert: aber es funktioniert!

Vorab: Um Verwirrung für diejenigen zu vermeiden, die git neu sind (soweit ich weiß), ist GIT GIT ... das heißt, es gibt wirklich keine spezielle Serverversion und a Client-Version ... Das GIT, das bei der Installation von XCode lokal auf Ihrem Rechner installiert wurde, entspricht weitgehend dem auf einem "Server". Der einzige wesentliche Unterschied ist die Support-Software / Infrastruktur, die oben läuft.

Es ist diese optionale separate Ebene, die ein Server verwenden kann, um Benutzern die Verbindung mit dem zugrunde liegenden Git-System zu ermöglichen, was den größten Unterschied zwischen einem Git-Server (auch "Remote" genannt) und einem Git-Client ausmacht. Verbinden sich Benutzer über eine Weboberfläche, die in Apache ausgeführt wird? Verwenden sie eine andere Art von Benutzeroberflächen-Mediator (z. B. Gitolite), oder verbinden sie sich einfach direkt über SSH mit git, indem sie tatsächliche OSX-Benutzerkonten auf dem Remote-Server verwenden? Das ist eine wichtige Sache, um sich zu verirren, wenn Sie neu sind und versuchen, Ihren eigenen Remote-Server einzurichten: direkter oder vermittelter Zugriff.

In diesem Hinweis wird davon ausgegangen, dass Sie nur mit einer kleinen Anzahl bekannter Benutzer arbeiten und daher keine zusätzliche Vermittlungsschicht benötigen. Daher entscheiden wir uns für den direkten Zugriff auf SSH unter Verwendung aktueller OSX-Konten. Bitte beachten Sie auch, dass es nicht darum geht, mit GitHub zu synchronisieren. Es gibt viele Notizen zu diesem Thema an anderer Stelle.

Aber bevor wir weiter gehen, sind Sie sicher, dass Sie nur OSX Client-Accounts anstelle einer separaten Benutzer vermittelnden Schicht verwenden möchten? (wie Gitolite / Gitosis etc) ... denken Sie daran, dass jeder Benutzer, der in Zukunft Zugriff auf den Server benötigt, einen direkten OSX-Client-Account in System-Einst. erstellen muss, wenn das nicht viel ist ein Ärger, großartig, ansonsten guck mal Gitolite, da es dieses Problem auf lange Sicht vermeidet (fügt aber kurzfristig eine zusätzliche Schicht Setup hinzu - & lt; a href="https://github.com/sitaramc/gitolite/ "> Ссылка ).

ABSCHNITT 1 - Einrichten Ihres OSX Client GIT Servers.

Ich nehme an, dass Sie KEINEN XCode auf Ihrer OSX git Remote Box installiert haben, also müssen Sie GIT herunterladen und installieren, glücklicherweise ist dieser Teil einfach ...

Navigieren Sie von der eigentlichen Remote-Box zu Ссылка und rufen Sie git auf, öffnen Sie das Disk-Image und starten Sie das Installationsprogramm.

>

Vergessen Sie nicht, das Shell-Skript "setup git path for non-terminal programs.sh" auszuführen, das mit dem Installer geliefert wird (es ist wahrscheinlich direkt neben dem Installer auf dem Disk-Image) ... leider ist es nicht das Allround magic Link Fixer, wenn Sie das tun, was wir sind, aber es gibt einige Kopfschmerzen für das Konto, das die Installation durchgeführt hat.

BENUTZERKONTEN ERSTELLEN: Da wir KEINE Zugriffsvermittlungsebene verwenden, erstellen Sie Benutzerkonten direkt in den Systemeinstellungen auf der Remote-OSX-Box für alle Benutzer, die diesen Dienst verwenden .

Erstellen Sie eine OSX-Benutzergruppe, die Zugriff auf die Repositorys hat, und fügen Sie diese Benutzer dieser Gruppe hinzu.

In den Systemeinstellungen der Remote Box - & gt; Freigeben, "Remote Login" aktivieren (dies ist SSH), Sie haben auch die Möglichkeit, nur bestimmten Benutzern den Zugriff zu erlauben ... (mehr zu diesem Dienst später - da er sich auch ändern muss)

Testen Sie die Remote-Anmeldung von Ihrem lokalen Computer aus mit einem persönlichen Konto, das Sie zuvor eingerichtet haben:

ssh [email protected]

Wenn Sie einsteigen oder wenn Sie aufgefordert werden, einen RSA-Schlüssel zu erstellen, bedeutet dies, dass Sie eine gute Verbindung hergestellt haben - aber nur Schlüssel für Konten erstellen, die Sie persönlich verwenden möchten.

Wenn sich das Gerät hinter einer Firewall befindet, Port 22 möglicherweise NICHT geöffnet ist (aus gutem Grund!), müssen Sie irgendwie Zugriff auf den Computer über diesen Port erhalten, oder einen, den Sie unten auswählen ... wenn Sie Wenn du deine Firewall nicht kontrollierst, könnte das Schmerz sein - egal, mehr zu diesem Port-Zeug unten.

Erstellen Sie auf dem Remote-Computer ein gemeinsames Master-Repository-Verzeichnis in / Users / Shared, etwa wie / Users / Shared / git ... wahrscheinlich am besten nicht zu kreativ mit der Benennung.

Erstellen Sie jetzt einen Unterordner in diesem Verzeichnis, nennen Sie ihn / Users / Shared / git / Test1 oder welchen Namen Sie auch mögen.

Gehen Sie im Terminal des entfernten Rechners in das Verzeichnis, das Sie gerade erstellt haben (/ Users / Shared / git / Test1) und erstellen Sie das erste Remote-GIT-Repository, indem Sie "git --bare init" anbinden prompt, von innerhalb dieses Verzeichnisses , erstellt dies alle notwendigen Repo-Dateien. Es gibt Hinweise auf die Bedeutung dieser Aufforderung ... aber im Moment möchten wir nur, dass Sie verbunden sind & amp; Laufen, obwohl Sie sich offensichtlich die Zeit nehmen sollten, um etwas über diese Aufforderungen zu erfahren.

In der Finder-GUI auf der Remote-Box (in der GUI unter OSX ist es im Allgemeinen leichter, da die Dauerwellen im Vergleich zum Standard-UNIX zu kurz kommen), wählen Sie den Ordner / Users / Shared / git, erhalten Sie Informationen dazu und gewähren Sie Lesezugriff. Schreiben Sie den Zugriff auf dieses Verzeichnis und alle Unterverzeichnisse auf die zuvor in den OSX-Systemeinstellungen erstellte Zugriffsgruppe für den Zugriff auf das Repository. Eine schnelle Möglichkeit, die Änderungen rekursiv auf alle Unterordner anzuwenden, besteht darin, das Infofeld zu entsperren und auf das kleine Zahnradsymbol unten zu klicken - wählen Sie "Änderungen an umschlossenen Elementen anwenden ..."

GROSSER SICHERHEITSALARM: Wie oben angedeutet, MÜSSEN Sie, wenn Sie nicht wollen, dass jeder Bot im Internet versucht, sich den Weg in Ihr Repository zu erzwingen, den SSH-Port des Remote-Servers von 22 auf fast alles ändern sonst ... ehrlich, es gibt Bots überall im Netz, die nichts tun, als nach offenen Ports 22 zu schnüffeln. Ändern der Port # ist kaum die Knie der Knie für die Sicherheit - ABER - es wird eine Menge Firewall Log Thrashing speichern, da sonst jeder Bot fast sofort finden Sie und Brute-Force-Angriffe beginnen.

Ändern des SSH-Ports auf der Remote-OSX-Git-Box:

Öffnen Sie auf Ihrer Firewall ein Pinhole zu einer TCP-Nummer, mit der Sie sich wohl fühlen - für eine Liste der verfügbaren TCP-Ports gehen Sie hier und wählen Sie etwas nicht in der Liste: Ссылка

Um den SSH-Port zu ändern, müssen Sie /System/Library/LaunchDeamons/ssh.plist öffnen, aber zuerst eine Sicherungskopie dieser Datei erstellen. Dann öffne das in deinem Lieblingseditor. (Dies erfordert Admin-Berechtigung zum Bearbeiten); Du musst der Liste einen "Listener" hinzufügen ... hier ist was ich getan habe, und nach vielen Schmerzen und Leiden hat es funktioniert:

Leider ist die Wiederherstellung von SSH auf dem OSX-Client mit Schlüsselbefehlen ein Wissenschaftsprojekt, also müssen Sie zu den Systemeinstellungen zurückkehren - & gt; Sharing, und schalten Sie dann "remote login" aus und dann wieder ein, oder starten Sie einfach die Box neu - keine Sorge, wenn Sie es richtig gemacht haben, haben Sie den Standard-SSH-Port für jeden hinter der Firewall und einen neuen Port geöffnet Sie können ssh anschalten, auf den die Firewall irgendjemanden außerhalb zeigt.

Um den neuen Port zu testen, geben Sie diesen auf Ihrem lokalen Computer ein. ssh -p 65534 [email protected] Wie Sie sicher schon erraten haben, steht 65534 für die von Ihnen gewählte Portnummer.

Erstellen Sie erneut alle erforderlichen SSH-Schlüssel, wenn Sie dazu aufgefordert werden - aber nur für Ihr Konto! Wenn Sie sich über den neuen Port nicht mit SSH anmelden können, haben Sie daran gedacht, den Dienst oder das Gerät neu zu starten? Sie MÜSSEN das funktionieren, bevor alles andere funktioniert!

Als nächstes musst du damit fertig werden, alle notwendigen Pfad-Alias ​​'auf der Remote-Box zu bekommen - wenn du es nicht tust, bekommst du die mysteriöse "git-upload-pack" fehlende Nachricht, wenn du versuchst Drücken Sie in XCode auf das Remote-Repository.

Wechseln Sie im Terminal als Administrator auf der Remote-Box zu / usr / bin /

Geben Sie dann im Terminal den folgenden Befehl ein: sudo ln -s / usr / local / git / bin / git *. (Ja, das ist ein Punkt, schließen Sie es ein), dieser Pfad funktioniert, wenn Sie das Standardgit-Installationsprogramm verwenden. Wenn nicht, müssen Sie sudo ln -s / [Pfad / zu / Git] / bin / git * eingeben. Dies erfordert Administratorzugriff. (Sie werden nach einem Passwort gefragt)

Also - hier haben Sie so weit gemacht:

  • Installiertes Git
  • Richten Sie ein Repository ein
  • Richten Sie die erforderlichen Pfade zu diesem Repository ein, einschließlich einiger benutzerdefinierter Links
  • Erstellte Benutzerkonten
  • Eine Gruppe für diese Konten erstellt und dieser Lese- / Schreibberechtigung für die Gruppen-Dateiebene für das Repository erteilt
  • Ein neuer Port für SSH wurde in
  • erstellt
  • Ihre Firewall wurde so geändert, dass sie auf diesen Port verweist (es sei denn, Sie sind verrückt, öffnen Sie niemals Port 22 für das Internet)

OK, jetzt auf XCode auf dem lokalen Computer

Ich würde empfehlen, ein neues Testprojekt zu erstellen ... es spielt keine Rolle, wie Sie es nennen, TestProject1 ... aber wenn Sie die Vorlage durchgehen, um sie zu erstellen, stellen Sie sicher, dass Sie ein eigenes lokales Git erstellen Repository (dies ist eine Option während der Erstellung Vorlage, in der Dialogbox).(Vieles davon wird an anderer Stelle in SO behandelt, aber um mit den Referenzen, die Sie bereits gewohnt sind, fortzufahren, fahre ich fort)

Jetzt müssen wir XCode auf Ihrem lokalen Rechner über das Remote-Repo informieren und es synchronisieren lassen.

Wechseln Sie in XCode auf Ihrem lokalen Computer zu Window- & gt; Organisator

Scrolle in der Liste auf der linken Seite nach unten und finde das neue Projekt, das du gerade erstellt hast.

Klicken Sie auf den Ordner "remotes"

Dies öffnet die Remote-Seite im rechten Bereich, klicken Sie unten auf der Seite auf die Schaltfläche "Remote hinzufügen"

Dies öffnet eine Dialgue-Box, im Namenbereich geben Sie etwas für Ihre Referenz ein ... das ist KEINE URL, daher kann es kurz, aber etwas beschreibend sein: wie "MacMini_Test1"

Im Ort-Feld sind die Dinge nicht so einfach ... Sie müssen eine korrekte URL zu der entfernten Box eingeben, die wir gerade eingerichtet haben ... das kann ein Schmerz sein, aber wenn Sie es richtig gemacht haben, Sie werden so etwas eingeben

ssh: //[email protected]: 65534 / Benutzer / Freigegeben / git / test1

und das sollte funktionieren! Bitte beachten Sie, wie wir die Portnummer hinter der Adresse einfügen, gefolgt vom absoluten Pfad zum Repo

Klicken Sie auf die Schaltfläche "create", und eine neue Eingabeaufforderung wird geöffnet, in der Sie nach Ihrem SSH-Passwort gefragt werden. Geben Sie es ein.

Manchmal bleibt XCode hier hängen und man muss neu starten ... leider bekommt man manchmal die URL falsch und es sieht genauso aus ... egal ob man alles richtig gemacht hat ... zumindest nach einem Neustart, Dinge sollten in Ordnung sein

Verlasse den Organizer und gehe zurück zum Haupt-XCode-Fenster ...

Schreiben Sie einen kleinen Kommentar in eine Codedatei, speichern Sie sie, nur um sie zu ändern ...

Nehmen Sie alle Änderungen am lokalen Repository wie gewohnt vor (ein M erscheint neben dem Dateinamen in der Dateiliste, nachdem Sie es mit Ihrem neuen Kommentar gespeichert haben, klicken Sie auf die Datei und folgen Sie dem Menü, um die Änderung zu bestätigen das lokale Repo): Sie müssen alle lokalen Änderungen vornehmen, bevor Sie diese Änderungen an das Remote-Repository "pushen" können.

Drücken Sie zum Remote Repo

Gehen Sie zum Dateimenü, wählen Sie Datei - & gt; Quellcodeverwaltung - & gt; Drücken Sie

Ein Menü sollte herunterfallen, und nach einer Sekunde oder so, sollte ein grünes Licht erscheinen, mit dem Text "Repository ist online" , mit dem Namen des Repositories in eine Dropdown-Liste, "MacMini_Test1", wenn Sie mit dem obigen Namen gegangen sind.

Wählen Sie die Schaltfläche "Push" ... Ihre Änderungen sollten zum Remote Repo verschoben werden.

Sie sind Sooooooooooooo Fertig!

Ich entschuldige mich dafür, dass ich keine Zeit hatte, mehr über diese "Anleitung" zu erfahren, und so viele andere Leute auf diesem System haben die Schlüsselinformationen bereitgestellt, um dies in Gang zu bringen. Es ist schwierig, mit der Auflistung zu beginnen - Vorerst werde ich mit der Zeit mehr Lob hinzufügen. Egal ... das ist, was Sie tun müssen, um einen persönlichen Git-Remote-Server auf OSX Snow Leopard hinter einer Firewall auf einem angepassten SSH-Port zum Verknüpfen mit einem Projekt in XCode 4.1 oder höher zu bekommen.

Puh!

    
OverToasty 22.03.2012, 22:17
quelle

0 Antworten

Tags und Links