sábado, 22 de septiembre de 2012

¿Desarrollando para OpenERP en Windows?

Intrducción

Si aunque parezca extraño algunos tenemos esa "extraña" necesidad, trabajar en Windows pero editando archivos de OpenERP, probando cambios y lo mas importante subiendo estos a Launchpad.

El primer problema con el que nos encontramos es que es exageradamente tedioso instalar todas las librarías  de Python para correr las fuentes de OpenERP en Windows, si lo logras hacer después de mucho "googlear" bien por ti pero te encontrarás con otros dos enormes problemas:

1. Windows no "conoce" los enlaces "suaves" de Linux con los cuales se recomienda enlazar los módulos de OpenERP a una carpeta principal y esto te obligara a utilizar un "experimento" de enlaces llamado MKLINK en cual deja mucho que desear.

2. Windows no respeta el estándar de fecha por lo que al utilizar Launchpad te darás de topes en la pared ya que te intentará subir "cambios" en archivos que no has tocado.

Después de este punto maldecirás mil veces Windows y regresaras al feo pero muy "estable" Ubuntu.

Estable entre comillas SI, lo puse bien, y es que a pesar de utilizar Linux desde hace mas de 10 años (utilizándolo todos los días no solo un rato) me siento en la total libertad de expresar mi opinión:

Linux NO es nada estable en entorno gráfico, veamos:

Gnome 3, se brinca todas los estándares de usabilidad,
Unity ni siquiera sirve para trabajos cotidianos,es lento y tiene muy poca funcionalidad,
Cinnamon (del cual escribí un artículo aquí) cumple lo requerido para ser usable pero se traba horrores, y no solo lo digo yo, tengo un equipo de trabajo con el cual probamos todos lo mismo para comprobar que no sea error de usuario o error pasajero.
KDE, este sí que es bonito y un poco estable, de todos es el mas aceptado de momento para mi (aunque en el artículo anterior mencione que Cinnamon, si, ¿y? tengo derecho a cambiar de opinión). Pues bien en este escritorio encontré aún algunos fallos, sobre todo al trabajar con varios monitores y al suspender sistema, se queda colgado algunas veces.

Y algo que no es culpa del escritorio pero que se extraña es la Hibernación del sistema, yo estoy muy acostumbrado a Hibernar mi máquina para regresar al siguiente día y simplemente retomar donde me quedé y no construir de nuevo mis ventanas y procesos.

Del Libre Office ni se diga, deja mucho que desear y Windows 7 pues no es tan malo como parece y es compatible con todo.

Lo único que extrañaba en Windows de Linux era el poder hacer "Seguridad Wireless" pero desde la aparición de iWEP para iPhone ya no utilizo mucho esa función, desde mi iPhone en menos de 30 segundos obtengo lo que quiero.

Me pudiera extender con mil cosas por las cuales alguien querría regresar a Windows y sé que es un tema polémico que a mas de uno lo hará pegar un brinco, pero el mundo se divide en opiniones y elecciones y esta es la mía.

Manos a la Obra.

1. Instalar VirtualBox, a mi parecer el mejor manejador de Máquinas Virtuales.
2. Crear una máquina Virtual e instalar Linux 12.04 Server
3. En la máquina virtual instalar OpenERP desde las fuentes siguiendo este tutorial.
4. En la máquina virtual instalar SAMBA en linux

# sudo apt-get install samba samba-client smbfs smbclient


5. En la máquina virtual configurar Samba para compartir la carpeta de OpenERP con Windows

Consideraciones:
No podemos usar la compartición de VirtualBox ya que esta comparte una carpeta del sistema Host con el Anfitrión, nosotros requerimos que Linux comparta la carpeta para que Linux controle los archivos no Windows (por las fechas)

Para compartir una carpeta en Linux simplemente editamos el archivo:

# sudo nano /etc/samba/smb.conf

Y agregamos al final

[openerp]
comment = "Carpeta a compartir desde Linux"
path = /home/ubuntu/openerp
public = yes
writable = yes
browseable = yes

6. Asignando los permisos a la carpeta

# sudo chmod -R 777 /home/ubuntu

7. Configurando la tarjeta de red para la red "local" entre Linux y Windows

Esto es muy importante, nosotros crearemos una unidad en Windows conectada a la carpeta openerp que compartimos en Linux y debemos decidir en que esquema queremos trabajar.

7.1. Configurar la red de VirtualBox como adaptador puente (opción por default de VirtualBox):


De esta manera Linux se conectará a nuestro switch como si fuera una máquina independiente y se le dará una IP en el mismo segmento que nuestra máquina en Windows.

El problema de esta configuración es que si cambiamos constantemente de redes se reasignará la IP de nuestra máquina virtualizada así como del anfitrión.

7.2. Conectar como Host-Only (recomendada),


De esta manera se creará otra red interna entre Linux y Windows, cada una con una IP y esta IP no cambiará con reinicios por lo cual si montamos la unidad de Windows.

En cualquier caso debemos conocer la IP que tenemos en Linux, esto lo realizamos tecleando en la máquina virtual:

# ifconfig

eth0   Link encap:Ethernet  HWaddr 08:00:27:1e:58:2a
          inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe1e:582a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3767 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5261 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:601342 (601.3 KB)  TX bytes:5322988 (5.3 MB)

Otra manera de hacerlo es por el nombre de la máquina:

# cat /etc/hostname

En mi caso el comando anterior me devuelve: ubuntuvm

Copiamos la dirección que tenga eth0 en este ejemplo la marque en azul y en negrita o el nombre de la máquina para utilizarlo en el siguiente paso.

8. Creando la unidad virtual en Windows.


Pueden poner la IP o el Hostname.

9. Levantando la máquina virtual al iniciar Windows.

Si trabajamos todo el tiempo con OpenERP será recomendable que la máquina virtual se levante automáticamente al iniciar Windows.

9.1 Creamos un archivo .bat (si es como los .sh de Linux, Windows también tiene lo suyo xD) con el siguiente contenido


 cd C:\Program Files\Oracle\VirtualBox
 VBoxManage.exe startvm Ubuntu

Donde Ubuntu es el nombre de la máquina virtual con Linux.

9.2 Copiamos ese archivo a la carpeta de inicio de windows:

C:\Users\daimon\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

daimon es el nombre de usuario con el cual nos logeamos a Windows, o si queremos que la máquina inicie para todos los usuario copiamos el archivo en:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup


10. Buen trabajo


Con lo anterior tenemos corriendo nuestro OpenERP en Linux, podremos conectarnos vía SSH y parar el servidor de OpenERP o hacerlo directamente desde VirtualBox y podemos realizar cambios en los archivos fuente con toda confianza ya que estos están almacenados en nuestro Linux.

Saludos y ¡ happy windows !


No hay comentarios:

Publicar un comentario