Ich mache meine Entwicklungsarbeit auf meiner Windows-Maschine, aber meine Kompilierung auf einer entfernten Linux-Maschine. Momentan starte ich einen X-Server unter Windows, ssh in den Linux-Rechner und mache dann die Entwicklung remote.
Was ich tun möchte, ist, meine Quelle auf dem Windows-Rechner zu bearbeiten und automatisch Dateien beim Speichern auf das Linux-System zu kopieren. Ich möchte auch, dass meine integrierten Kompilierungsbefehle einen Build auf dem Remote-System ausführen.
Wenn es einen Unterschied macht, ist die Quelle alles in C, mit GCC. In absteigender Reihenfolge der Präferenz habe ich Emacs, Vi und Netbeans auf meinem Desktop und bin bereit, eine andere IDE als letzten Ausweg zu installieren.
Eine Option ist die Verwendung des TRAMP Remote-Bearbeitungspakets (in Emacs 22 und neuer integriert, und Sie können installiere es in ältere Versionen). Jedes Mal, wenn Sie Ihre Datei speichern, sendet Emacs seinen Inhalt über ssh (standardmäßig ist jedes Detail vollständig konfigurierbar) an den Linux-Rechner. Befehle wie M-x compile
und M-x grep
sind TRAMP-fähig und werden auf dem Remote-Host ausgeführt.
Dies ist sicherlich in vim machbar. Sie können das Protokoll scp: // in vim verwenden, um entfernte Dateien zu bearbeiten, und einen Befehl einrichten, der eine lokale Kopie schreibt. Sie können auch ändern, für welches Programm vim verwendet wird: make, um stattdessen einen ssh make auf Ihrem Server auszuführen.
Sie müssen Ihre SSH-Schlüssel einrichten, um dies schmerzfrei zu halten (sonst geben Sie Ihr Passwort die ganze Zeit ein), aber das ist ziemlich einfach.
Eine andere Alternative wäre es, als Teil Ihres make-Befehls zu einem Remote-Repository zu wechseln, anstatt es remote zu bearbeiten.
BEARBEITEN:
Zuerst wird das scp://
-Protokoll in vim verwendet. Von :help netrw-start
(oder von der Seite herunter von :help scp
)
Netrw unterstützt das "transparente" Bearbeiten von Dateien auf anderen Computern mithilfe von URLs (siehe | netrw-transparent |). Als Beispiel nehmen wir an, Sie haben eine Konto auf einer anderen Maschine; Wenn Sie scp verwenden können, versuchen Sie:
%Vor%Möchten Sie, dass ssh / scp einfacher zu verwenden ist? Check out | netrw-ssh-hack |!
Sie können auch scp://
Pfade in :edit
-Befehlen verwenden, oder wirklich überall, wo Sie einen normalen Pfad verwenden könnten.
Und, von den erwähnten :help netrw-ssh-hack
, Anweisungen zum Einrichten Ihrer ssh-Schlüssel:
BROWSING VERBESSERN * netrw-listhack * * netrw-ssh-hack * {{{2
Besonders mit dem Remote-Verzeichnis-Browser, ständig das Passwort eingeben ist langweilig.
Für Linux / Unix-Systeme, das Buch "Linux Server Hacks - 100 industrielle Stärke Tipps & amp; Tools "von Rob Flickenger (O'Reilly, ISBN 0-596-00461-3) gibt einen Tipp zum Einrichten von no-password ssh und scp und diskutiert zugehörige Sicherheit Probleme. Es war früher verfügbar bei Ссылка , aber anscheinend wird diese Adresse jetzt zu irgendeinem "Hackzine" umgeleitet. Ich werde eine Zusammenfassung basierend auf diesem Artikel und auf einer Kommunikation von versuchen Ben Schmidt:
(1) Erstellen Sie ein öffentliches / privates Schlüsselpaar auf dem lokalen Computer (ssh Client):
%Vor%(Speichern der Datei in ~ / .ssh / id_rsa nach Aufforderung)
(2) Drücken Sie einfach auf die Frage nach der Passphrase (zweimal) für Nein Passphrase. Wenn Sie eine Passphrase verwenden, müssen Sie auch verwenden ssh-agent, so dass Sie die Passphrase nur einmal pro Sitzung eingeben müssen. Wenn Sie keine Passphrase verwenden, melden Sie sich einfach bei Ihrem lokalen Benutzer an Computer oder Zugriff auf die Schlüsseldatei in irgendeiner Weise wird ausreichen Zugriff auf alle SSH-Server, die diesen Schlüssel für die Anmeldung autorisiert haben.
(3) Dies erstellt zwei Dateien:
%Vor%(4) Auf dem Zielcomputer (SSH-Server):
%Vor%(5) Auf Ihrem lokalen Rechner (ssh Client): (eine Zeile)
%Vor%oder, für OpenSSH, (eine Zeile)
%Vor%Sie können es mit
testen %Vor%und Sie sollten sich auf dem Server anmelden, ohne weitere Eingaben machen zu müssen irgendetwas.
Wenn Sie sich für eine Passphrase entschieden haben, tun Sie Folgendes:
%Vor%Sie werden nach Ihrer Passphrase gefragt, wenn Sie ssh-add verwenden, aber nicht Anschließend, wenn Sie ssh verwenden. Zur Verwendung mit vim können Sie
verwenden %Vor%und, als nächstes in vim, benutze
%Vor%Alternativ können Sie ssh-agent auf das Terminal anwenden, auf dem Sie planen vim ausführen:
%Vor%und ssh-add wann immer Sie brauchen.
Für Windows haben Leute auf der Mailingliste vim erwähnt, dass Pageant hilft mit der Vermeidung der ständigen Notwendigkeit, das Passwort einzugeben.
Kingston Fung schrieb über einen anderen Weg, um nicht ständig hineingehen zu müssen Passwörter:
Um zu vermeiden, dass Sie jedes Mal das Passwort für scp eingeben müssen Stellen Sie einen Hack in den Dokumenten bereit, um einen ssh-Account ohne Passwort einzurichten. Ich habe einen ... gefunden Bessere Möglichkeit, das zu tun: Ich kann einen regulären ssh-Account verwenden, der ein Passwort, um auf das Material zuzugreifen, ohne dass das Passwort eingegeben werden muss jedes Mal. Es ist gut für Sicherheit und Komfort. Ich habe ssh öffentlichen Schlüssel versucht authorization + ssh-agent, dies zu implementieren, und es funktioniert! Hier sind zwei Links mit Anweisungen:
Um auf entfernten Systemen zu erstellen, müssen Sie Ihre makeprg
Variable auf setzen
mach ein ssh make. Von :help makeprg
Programm für den Befehl ": make". Siehe |: make_makeprg |. Diese Option kann '%' und '#' Zeichen enthalten, die auf erweitert werden der aktuelle und alternative Dateiname |: _% | |: _ # | Umgebungsvariablen werden erweitert |: set_env |. Siehe | Option-Backslash | über Leerzeichen und umgekehrte Schrägstriche.
Beachten Sie, dass ein '|' muss zweimal maskiert werden: einmal für ": set" und einmal für die Interpretation eines Befehls.Wenn Sie einen Filter namens "myfilter" mach es so:
%Vor%Der Platzhalter "$ *" kann angegeben werden (sogar mehrfach) wo die Argumente enthalten sind, zum Beispiel:
%Vor%Diese Option kann nicht über | |modeline | eingestellt werden oder in der | Sandbox |, z Sicherheitsgründe.
Ich würde die kontinuierliche Integration für Ihre Umgebung prüfen. Auf diese Weise können Sie die Änderungen an der Quellcodeverwaltung festschreiben und die Linux-Box als Build-Server verwenden. Sie können Tests und andere damit zusammenhängende interessante Dinge haben, die Sie auf den Builds ausführen möchten.
Update 1: Auch das könnte für Sie funktionieren: Ссылка (es ist auch einen Versuch wert, einige Suchen auf ähnlichen Tools zu machen)
Andere haben SAMBA vorgeschlagen, was auf Ihrer Linux-Box nicht möglich ist. Eine gute Alternative ist, Dokan SSHFS auf Ihrer Windows-Box zu verwenden, um ein Remote-Verzeichnis über SSH zu mounten .
Sie könnten versuchen, eine Festplatte zwischen Ihren Linux- und Windows-Rechnern mit Samba oder ähnlichem zu teilen. Dann könnten Sie auf Ihren lokalen Maschinen bearbeiten und die Dateien wären sofort auf dem Remote-Rechner sichtbar, da das Laufwerk für beide sichtbar wäre.
Wo ich arbeite, haben wir alle Dateien auf NFS, auf die von allen Linux-Maschinen und Windows-Maschinen zugegriffen werden kann. Ich weiß nicht, wie schwer es ist, das einzurichten, da ich in einem großen Unternehmen arbeite und die IT von mir abstrahiert ist, aber die einfache gemeinsame Nutzung von Festplatten sollte ziemlich einfach sein.
Warum starten Sie einen X-Server unter Windows? Persönlich würde ich eine Linux-VM mit VMware einrichten oder was auch immer Ihre Lieblings-VM-Technologie ist (VMware ist kostenlos und funktioniert gut). Wählen Sie dann eine beliebige Linux-Distribution. Sie brauchen nur sehr grundlegende Funktionen, meist die Standard-Toolchain. Sie könnten Centos, Ubuntu, Fedora, Debian, was auch immer wählen. Ich benutze normalerweise Centos oder Debian. Richten Sie es ein und verwenden Sie einfach PuTTY in Ihrer VM. Von dort aus können Sie Dateien auf Ihren Remote-Server scannen und so weiter. Auf diese Weise müssen Sie sich nicht mit Cygwin oder einem X-Server oder irgendetwas davon beschäftigen.
Stellen Sie ein Quellcodeverwaltungssystem ein und verwenden Sie es. Dann können Sie einfach einen Commit machen, nachdem Sie in Ihrer IDE gespeichert haben, und auf dem Server kann es passieren, dass etwas beim Commit passiert.
Dies kann Tests auslösen, Build, mailen Sie alle Fehler an Sie ...
Eine Lösung könnte eine Art von Abfrage-App sein, die den Zeitstempel der Dateien überprüft, um zu sehen, ob sie sich geändert haben. Wenn sie es dann haben, speichern und dann kompilieren. Ein bisschen hackish so, aber es wäre praktikabel.
Ich persönlich benutze XMing mit PuTTY . Ich benutze PuTTY, während XMing läuft. Ich kann jeden Editor öffnen (gvim, emacs, gedit, etc) und es wird erscheinen.
Sie müssen jedoch einige Einstellungen für PuTTY vornehmen:
Tags und Links emacs vim cross-platform