28 de junio de 2011

Compilando remotamente desde Eclipse

Mi configuración es la siguiente:
  • Una computadora de escritorio con Windows donde se ejecuta Eclipse.
  • Un servidor con Linux con los compiladores y el fuente.
Desde el servidor Linux se comparten los fuentes usando NFS o Samba. Otra opción es tener los fuentes en la computadora de escritorio y montar en el servidor usando CIFS. Como la operación más intensa sobre los fuentes es cuando se compila prefiero que el compilador pueda acceder de manera nativa a los fuentes.

Ahora que los pasos preliminares están completos, seguimos con estos pasos:

  1. Creamos un login sin password para acceder al servidor Linux. La idea es generar un par de clave pública y privada usando PuTTYgen, salvar la clave privada en un lugar seguro y agregar la clave pública al fichero ~/.ssh/authorized_keys2 en el servidor Linux. Los pasos se puede encontrar de manera más detallada por ejemplo este tutorial, o buscando en Internet "passwordless login".
  2. Creamos una sesión en PuTTY que contenga los datos necesarios para poder acceder al servidor, para seguir el ejemplo la llamamos servidor. El paso más importante aquí es asegurarnos de agregar la clave privada a la sesión en Connection/SSH/Auth.
  3. Modificamos el comando make dentro de Eclipse para que quede algo así: plink.exe -load servidor make -C /remote/src/repository , donde servidor es el nombre de la sesión creada en el paso 2 y /remote/src/repository es el path donde están las fuentes en el servidor.

En el paso 3 plink.exe nos permite ejecutar un comando en el servidor. En el ejemplo el comando make con el parámetro -C /path que sirve para indicarle un path. En el caso de necesitar algunos pasos extras antes del make se podría crear un .bat en la maquina escritorio o un script del shell en el servidor.

Nota: La razón de esta configuración es que los compiladores utilizados no tenían una versión para Windows actualizada.