2010-07-23 16 views
11

Angenommen, ich habe einen Server, der unter Linux läuft, auf dem ich Software entwickeln möchte (hauptsächlich OCaml, C/C++ und Java).Wie entwickelt man aus der Ferne Software?

Gibt es eine Möglichkeit, diese Dinge "remote" zu entwickeln? Ich meine eine IDE, die es mir ermöglicht, Dateien remote zu ändern (sie werden dann hochgeladen, wenn sie geändert und gespeichert werden) und mit Hilfe von SSH kompilieren (im Prinzip unter make oder omake).

Ich suchte nach etwas, das diesen Prozess für den Entwickler transparent macht, ohne sich darum zu kümmern, Dinge von Hand zu erledigen. Ich bin gewohnt, Eclipse zu verwenden, also frage ich mich, ob ein Plugin, um dies zu erreichen, existiert oder ob es andere Möglichkeiten gibt?

Beachten Sie, dass es passieren kann, dass die lokale Maschine nicht in der Lage ist, Software zu erstellen, die ich beabsichtige (zum Beispiel für OCaml), also sollte es sich nur auf Remote-Verbindung verlassen.

Vielen Dank im Voraus

+0

Sie möchten also die IDE lokal ausführen, Remote-Dateien ändern und sie auf einem Remote-Computer erstellen lassen? – Greg

+0

ja, das war's :) – Jack

+0

@Jack, Hast du es gelöst? Ich habe ähnliches Problem, ich möchte meine IDE auf Windows und ich habe eine VM, die winzige Linux enthält, würde ich gerne die IDE lokal und den Projektcode in der VM verwenden (Grund: FS Windows Einschränkungen) –

Antwort

1

Ich denke, Ihre Antwort ist IDE-centric.

Die ioslaves von KDE unterstützen den Zugriff sowohl über SFTP als auch über SSH (mithilfe von fish, bei dem ein Perl-Skript auf den Remotecomputer hochgeladen wird). Ich glaube, Gnome hat auch ein virtuelles Dateisystem (gvfs), das den Zugriff auf entfernte Dateisysteme unterstützt.

Ich empfehle daher, eine IDE zu wählen, die ein virtuelles Dateisystem unterstützt, das über SSH/SFTP betrieben werden kann und Ihnen erlaubt, den Build-Befehl anzugeben. Sie müssten dann nur den Build-Befehl angeben, der seine Ausgabe vom remote make-Befehl erhalten würde (z. B. hat vim eine makeprg -Option, die auf einen beliebigen Befehl gesetzt werden kann).

2

Nun, die einfachste Idee, die ich denken kann, obwohl es eher Brute-Force ist eine Dateifreigabe auf den Server wäre, einfach zu öffnen und dann die Datei direkt über Eclipse-bearbeiten.

Wenn das zumindest für Java nicht funktioniert, könnten Sie Maven für einige dieser Aufgaben nutzen. Ich bin weniger sicher, ob ich Make machen soll.

1

Je nachdem, wie ‚Remote‘ das ist; warum nicht ssh in und die IDE fern über X laufen lassen?

+0

Nein, ich don Ich möchte die IDE remote ausführen, ich möchte Dateien speichern und sie remote kompilieren. – Jack

+0

@Jack - Ein automatisierter Buildprozess, der nach Änderungen im Dateisystem Ausschau hält? – AlG

+0

Es muss nicht automatisch sein, nur etwas wie: Ich bearbeite Quelle, ich speichere sie und es automatisch Updates an Remote-Server senden, ich "klicken Sie auf die Kompilier-Schaltfläche" (nur um die Idee) und es kompiliert es remote. Ich brauche vorerst keine GUI-Reaktion, nur das kompilierte Programm ausführen zu können und die Ausgabe zu sehen. Vielleicht suche ich einen ssh-wrapper :) – Jack

0

Ich verwende vim für Remote-Entwicklung. (Nun, ich benutze vim auch nicht-remote.)

1

Mit einem Build-Tool (Hudson zum Beispiel) könnten Sie einen Build-Agent auf Ihrem Remote-Server, überprüfen Sie Ihre Änderungen in Ihrem Repository als normal, und haben es tun Build, wenn Sie Änderungen einchecken (es wird wahrscheinlich entweder einen Repository-Hook durchführen oder nach Änderungen fragen). Ihr Build-Prozess wird der gleiche sein, es wird einfach automatisiert werden. :-)

+1

Bevor ich meine Änderungen kompilieren und testen kann, muss ich den Code überprüfen. –

+0

Wenn Sie der einzige sind, der daran arbeitet (was es von dem zu sein scheint, was Sie sagen), wäre das kein wirkliches Problem. Du hast recht, es ist ein wenig zurückgeblieben, aber mit diesem System kann es später erweitert werden. – corsiKa

0

Wenn das Bauen das Problem ist, hast du darüber nachgedacht, einfach ein automatisiertes Build-System zu verwenden, in dem du dich für svn festlegst und das System dann automatisch die Software erstellt? Ich habe viele gute Dinge über diese Art von Systemen gehört, obwohl ich es selbst noch nicht ausprobiert habe.

Wie bei der Fernentwicklung könnte eine SVnDAV-Lösung sinnvoll sein. Im Prinzip werden alle Ihre Daten gespeichert und der Text-Editor, den Sie verwenden, ist vollständig transparent. Eine wahrscheinlich viel bessere Lösung wäre jedoch, ein Netzwerklaufwerk/-verzeichnis zu verwenden und Dateien aus der Ferne zu bearbeiten. Auf allen Unix-basierten Systemen sollte dies sowohl für den Entwickler als auch für den Texteditor völlig transparent funktionieren.

1

emacs hat tramp, mit dem Sie entfernte Dateien öffnen und speichern und eine Shell auf einem Remote-System öffnen können. Mit Tramp zu arbeiten ist fast genauso wie mit lokalen Dateien zu arbeiten, außer dem Dateinamen. Um 'foo.c' auf der Maschine 'bork' als Benutzer 'joe' zu öffnen, öffne ich es mit den Standard-emacs-Befehlen und gebe ihm den Pfadnamen /[email protected]:foo.c

0

Ihre Wahl der IDE wird die haben am meisten Einfluss auf die Antwort auf "Kann ich?".Wenn Ihre IDE der Wahl CLI-basiert ist, können Sie immer nur SSH verwenden. Starten Sie screen (damit Ihre CLI-Sitzung in SSH-Sitzungen bestehen bleibt), und nutzen Sie sie!

0

Verwenden Sie vim oder emacs, da sie Ihnen Geschwindigkeit bieten. Ich weiß, dass mit diesen Editoren eine Lernkurve verbunden ist; aber sobald Sie sich in einem von ihnen wohl fühlen; Sie können mit ihnen genauso gut arbeiten wie mit Eclipse oder einer anderen IDE.

0

Wenn Sie bereits einen Linux-Server haben, würde ich vorschlagen, einen einfachen VPN-Server einzurichten. Ich habe das in der Vergangenheit gemacht und es funktioniert ziemlich gut. Auf diese Weise können Sie Ihre Dateien mit jedem "lokalen" Betriebssystem verbinden und ändern/erstellen. Ich tat dies, weil ich mac, pc und linux über verschiedene Teile des Tages und an verschiedenen Orten verwendete, so dass ich mit dem VPN Dateien remote bearbeiten konnte, ohne Dateien über das Internet freigeben zu müssen.

Es gibt viele Tutorials darüber, wie Sie dies erreichen können, auch wenn Sie Linux neueren Datums sind. Ich benutze Ubuntu Server auf meiner Linux-Box und hier ist das Tutorial, das ich verwendet habe.

http://www.ubuntugeek.com/howto-pptp-vpn-server-with-ubuntu-10-04-lucid-lynx.html

0

Netbeans 7.3 verfügt über eine neue Funktion, die das Problem behebt (und mir). Hier ist das Tutorial.

https://netbeans.org/kb/docs/cnd/remotedev-tutorial.html

Anmerkung: Ich kann es erkennen, hat 3 Jahre her, seit diese Frage gestellt wurde, so dass die Antwort nicht relevant sein kann jetzt @Jack.

0

Eine IDE, die genau Ihre Spracheinstellung unterstützt, ist Nuclide. Es fügt einige Pakete zu Atom hinzu und wird intern in Facebook genau so verwendet, wie Sie es beschrieben haben - vollständige Remote-Entwicklung in C++, Java und Ocaml.