Definitivamente no es una tarea fácil, pero de que se puede se puede, gracias a que existe un set de utilerías para “emular” la shell bash de Linux en Windows, es posible correr Ubuntu en Windows.
Ojo, si lo que quieres es correr Ubuntu sobre Windows sin problemas te recomiendo virtualizar. Esto es solo para estresarte por gusto y poder decir “Yo lo hice” pero definitivamente no es para el trabajo diario.
Lo primero que necesitas es una Windows 10 Fast Ring que tiene lo que se necesita, la shell de Linux, cuando Windows 10 Anniversary Update salga al público todo mundo lo podrá tener.
Una vez que lo instalas entonces te montas la Shell de Linux, en “Settings > Update & Security > For developers” y activas “Windows Subsystem for Linux (Beta)”. Después de eso instalas Bash.
Una vez instalada y corriendo Bash estarás corriendo una versión en espacio de usuario de Ubuntu, no estas corriendo Linux porque el kernel de Linux no está presente, pero WSL pone todo en orden como para que las utilerías crean que corren en Linux.
Una vez instalado necesitas actualizar, asi que usas
apt-get update apt-get upgrade
Ahora, vas de vuelta a Windows 10 e instalas un servidor X compatible con Windows, esto le permitirá a Ubuntu mostrar la interfaz gráfica. Los mejores para este propósito es cvxsrv o Xming.
Una vez instalado, necesitas decirle a Ubuntu que lo puede usar, esto con la variable de entorno DISPLAY.
DISPLAY=:0.0
Y para hacerlo permanente lo agregas a tu bashrc.
echo "export DISPLAY=:0.0" >> ~/.bashrc
Después de esto ya puedes correr programas de Ubuntu en Windows, pero no creas que no habrá problemas, o que correrán por mucho tiempo. Esto es porque WSL no incluye soporte para sockets; y sockets es lo que Linux usa para hacer que los servicios se comuniquen. En linux, muchas de las apps graficas usan DBus para comunicarse, y sin DBus muchas de las apps graficas no funcionarán o al menos no lo harán bien.
Sin embargo WSL soporta TCP y hay formas de echar a andar DBus sobre TCP:
sudo sed -i 's/<listen>.*<\/listen>/<listen>tcp:host=localhost,port=0<\/listen>/' /etc/dbus-1/session.conf
Lo siguiente es instalar el ambiente gráfico corriendo esto en bash:
- apt-get install ubuntu-desktop
- apt-get install unity
- apt-get install compiz-core
- apt-get install compizconfig-settings-manager
El primero instala el ambiente básico de Ubuntu, esto incluye programas como LibreOffice. El segundo instala Unity Desktop, los dos últimos instalan Compiz y OpenGL, necesarios para el manejador de composición. Despues a moverle.
Nice, muy bonito (no tan bonito), lo lograste, pero hay que recordar que no es una forma oficial (ni soportada) de correr Ubuntu en Windows, así que poco te va servir. De nuevo, si necesitas Ubuntu (por sus programas, servicios, yo que se) y Windows corriendo al mismo tiempo en la misma computadora por favor usa una maquina virtual. No te vayas con falsas expectativas.