Tutorial :How to remotely develop software?



Question:

Suppose I have a server that runs on Linux on which I would like to develop software (mainly OCaml, C/C++ and Java).

Is there a way to "remote develop" these things? I mean an IDE that allows me to modify files remotely (they are then uploaded when modified and saved) and to compile through SSH (basically invoking make or omake).

I was looking for something that makes this process transparent to the developer, without caring of doing things by hand. I'm used to use Eclipse so I wonder if a plugin to achieve this exists or if are there other choices?

Mind that it may happen that the local machine it not able to build software I intend to (for example for OCaml) so it should rely just on remote connection.

Thanks in advance


Solution:1

I think your answer is IDE-centric.

KDE's ioslaves support access over both SFTP and SSH (using fish, which uses a Perl script uploaded to the remote machine). I believe Gnome also has a virtual file system (gvfs) which supports remote filesystem access.

My recommendation, therefore, is to choose an IDE which supports a virtual filesystem that can operate over SSH/SFTP and allows you to specify the build command. You would then only need to specify the build command which would get its output from the remote make command (for example, vim has a makeprg option which can be set to any arbitrary command).


Solution:2

You can use X11 forwarding. Even if you are connecting from a Windows machine.

If you are on Linux, connecting with ssh -Y might work right out of the box for you:

ssh -Y user@your_server  eclipse &  


Solution:3

Well the simplest idea I can think of, though it is rather brute force would be to just open up a file share to the server and then edit the file directly through Eclipse.

If that doesn't work for Java at least you could make use of Maven to do some of those tasks. I am less certain about invoking Make though.


Solution:4

Depending on how 'remote' this is; why not ssh in and run the IDE remotely over X?


Solution:5

Using a build tool (Hudson for example) you could put a build agent on your remote server, check your changes into your repository as normal, and have it do a build when you check in changes (it will either do a repository hook or poll for changes, probably). Your build process will be the same, it will simply be automated. :-)


Solution:6

emacs has tramp, which lets you both open and save remote files, and open a shell on a remote system. Working with tramp is almost exactly like working with local files, except for the filename. To open 'foo.c' on the machine 'bork' as user 'joe' I open it with the standard emacs commands, giving it the pathname /joe@bork:foo.c


Solution:7

I use vim for remote development. (Well, I use vim also non-remote.)


Solution:8

If building is the problem, have you thought about simply using an automated build system where you commit to svn and the system then automatically builds the software? I've heard many good things about these sorts of systems, although I haven't quite tried any out myself.

As for remote development, a SVnDAV solution might be reasonable. It basically commits your every save and is completely transparent to the text editor you're using. However a probably much nicer solution would simply be to use a networked drive/directory and edit files remotely. On all unix-based systems this should work completely transparently to both the developer and the text editor.


Solution:9

Your choice of IDE will have the most impact on the answer to "can I?". If your IDE of choice is CLI based than you can always just SSH in, fire up screen (so that your CLI session is persistent across SSH sessions), and have at it!


Solution:10

Use vim or emacs since they will offer you speed. I know there is a learning curve associated with these editors; but once you get comfortable in any of them; you will be able to work on them as good as with Eclipse or any other IDE.


Solution:11

If you already have a linux server then I would suggest setting up a simple VPN server. I have done this in the past and it works pretty well. This way you can connect and modify/build your files with any "local" OS. I did this cause I use mac, pc and linux through various parts of the day and in multiple locations, so the VPN allowed me to edit files remotely w/out having to allow file sharing over the internet.

There are plenty of tutorials about how to achieve this even if you are newer to linux. I use ubuntu server on my linux box and here are the tutorial I have used.

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


Solution:12

Netbeans 7.3 has a new feature which addresses your problem (and mine). Here's the tutorial.

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

note: I realize it has been 3 years since this question was asked so the answer may be irrelevant to @Jack now.


Solution:13

One IDE that supports exactly your language set is Nuclide. It adds some packages to Atom and is used internally in Facebook exactly as you have described - full-fledged remote development in C++, Java, and Ocaml.


Solution:14

If a friendly file editor is enough for you then I'd recommend to use Jupyter.

  • Super fast installation
  • Built in server/file editor that starts with one command

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »