2010-07-23 17 views
11

Supongamos que tengo un servidor que se ejecuta en Linux en el que me gustaría desarrollar software (principalmente OCaml, C/C++ y Java).¿Cómo desarrollar software de forma remota?

¿Hay alguna manera de "desarrollar remotamente" estas cosas? Me refiero a un IDE que me permite modificar archivos de forma remota (luego se cargan cuando se modifican y se guardan) y compilar a través de SSH (básicamente invocando make o omake).

Estaba buscando algo que haga que este proceso sea transparente para el desarrollador, sin preocuparse de hacer las cosas a mano. Estoy acostumbrado a usar Eclipse, así que me pregunto si existe un complemento para lograr esto o si hay otras opciones.

Tenga en cuenta que puede suceder que la máquina local no sea capaz de crear el software que pretendo (por ejemplo, para OCaml) por lo que debe confiar solo en la conexión remota.

Gracias de antemano

+0

¿Desea ejecutar el IDE localmente, modificar los archivos remotos y hacer que se cree en una máquina remota? – Greg

+0

sí, eso es todo :) – Jack

+0

@Jack, ¿Lo resolvió? Tengo un problema similar, quiero mi IDE en Windows y tengo una máquina virtual que contiene un pequeño Linux. Me gustaría usar el IDE localmente y el código del proyecto dentro de la máquina virtual (razón: limitaciones de FS Windows) –

Respuesta

1

Creo que su respuesta es IDE-céntrica.

Las ioslaves de KDE admiten el acceso tanto a SFTP como a SSH (utilizando fish, que usa una secuencia de comandos de Perl cargada en la máquina remota). Creo que Gnome también tiene un sistema de archivos virtual (gvfs) que admite el acceso remoto al sistema de archivos.

Mi recomendación, por lo tanto, es elegir un IDE que admita un sistema de archivos virtual que pueda operar a través de SSH/SFTP y le permita especificar el comando de compilación. Entonces, solo necesitaría especificar el comando de compilación que obtendría su salida del comando de marca remota (por ejemplo, vim tiene una opción makeprg que se puede establecer en cualquier comando arbitrario).

2

Bueno, la idea más simple que puedo pensar, aunque es bastante fuerza bruta sería simplemente abrir un recurso compartido de archivos al servidor y luego editar el archivo directamente a través de Eclipse.

Si eso no funciona para Java, al menos podría hacer uso de Maven para hacer algunas de esas tareas. Sin embargo, estoy menos seguro de invocar a Make.

1

Dependiendo de cómo 'remota' esto es; ¿Por qué no ssh y ejecuta el IDE de forma remota sobre X?

+0

No, yo no No quiero ejecutar el IDE de forma remota, quiero guardar archivos y compilarlos de forma remota. – Jack

+0

@Jack: ¿un proceso de compilación automatizado que está a la espera de cambios en el sistema de archivos? – AlG

+0

No debe ser automático, algo así como: edito el código fuente, lo guardo y envía actualizaciones automáticamente al servidor remoto, hago clic en el botón de compilación (solo para dar la idea) y lo compila de forma remota. No necesito ningún tipo de respuesta de GUI por ahora, solo puedo ejecutar el programa compilado y ver el resultado. Tal vez estoy buscando un ssh-wrapper :) – Jack

0

Uso vim para el desarrollo remoto. (Bueno, yo uso vim también no remoto.)

1

Utilizando una herramienta de compilación (Hudson, por ejemplo) podría poner un agente de compilación en su servidor remoto, verificar sus cambios en su repositorio de forma normal y hacer que lo haga compilar cuando se registran los cambios (probablemente hará un enlace de depósito o encuesta para cambios, probablemente). Su proceso de compilación será el mismo, simplemente será automatizado. :-)

+1

Tener que verificar el código antes de poder compilar y probar mis cambios me parece retrógrado. –

+0

Si eres el único que trabaja en él (que parece ser por lo que dices), realmente no sería un problema. Tienes razón, es un poco atrasado, pero con este sistema en su lugar se presta a la extensión más tarde. – corsiKa

0

Si la construcción es el problema, ¿ha pensado simplemente en usar un sistema de construcción automatizado en el que se compromete con svn y el sistema crea automáticamente el software? He escuchado muchas cosas buenas sobre este tipo de sistemas, aunque no lo he intentado por completo.

En cuanto al desarrollo remoto, una solución SVnDAV podría ser razonable. Básicamente, compromete todos sus archivos guardados y es completamente transparente para el editor de texto que está utilizando. Sin embargo, una solución probablemente mucho mejor sería simplemente usar una unidad/directorio en red y editar archivos de forma remota. En todos los sistemas basados ​​en Unix, esto debería funcionar de forma totalmente transparente tanto para el desarrollador como para el editor de texto.

1

emacs tiene tramp, que le permite abrir y guardar archivos remotos, y abrir un shell en un sistema remoto. Trabajar con tramp es casi exactamente como trabajar con archivos locales, excepto por el nombre del archivo. Para abrir 'foo.c' en la máquina 'bork' como usuario 'joe', lo abro con los comandos estándar de emacs, dándole la ruta de acceso /[email protected]:foo.c

0

Su elección de IDE tendrá el más impacto en la respuesta a "¿Puedo?".Si su IDE de elección está basado en CLI de lo que siempre puede hacer con SSH, encienda screen (para que su sesión CLI sea persistente en todas las sesiones SSH) y tenga acceso a ella.

0

Use vim o emacs ya que le ofrecerán velocidad. Sé que hay una curva de aprendizaje asociada con estos editores; pero una vez que te sientas cómodo en alguno de ellos; podrá trabajar en ellos tan bien como con Eclipse o cualquier otro IDE.

0

Si ya tiene un servidor Linux, le sugiero que configure un servidor VPN simple. He hecho esto en el pasado y funciona bastante bien. De esta forma, puede conectar y modificar/crear sus archivos con cualquier sistema operativo "local". Lo hice porque uso Mac, PC y Linux a través de varias partes del día y en múltiples ubicaciones, por lo que la VPN me permitió editar archivos de forma remota sin tener que permitir el intercambio de archivos a través de Internet.

Hay muchos tutoriales sobre cómo lograr esto, incluso si eres más nuevo en Linux. Utilizo el servidor de Ubuntu en mi Linux Box y aquí están los tutoriales que he usado.

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

0

Netbeans 7.3 tiene una característica nueva que se ocupa de su problema (y la mía). Aquí está el tutorial.

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

nota: Me di cuenta de que han pasado 3 años desde que esta pregunta se formuló por lo que la respuesta puede ser irrelevante para @jack ahora.

0

Un IDE que admite exactamente su conjunto de idiomas es Nuclide. Agrega algunos paquetes a Atom y se usa internamente en Facebook exactamente como lo describió: desarrollo remoto completo en C++, Java y Ocaml.

Cuestiones relacionadas