Swift 5, Ubuntu y Windows 10

Microsoft ha cambiado mucho desde los tiempo de Bill Gates, y ahora, bajo la batuta de Satya Nadella, vuelve a tener una segunda juventud gracias a la plataforma en la nube Azure y a la apertura hacia el Open Source.

Muestra de ello es lo que os voy a contar en este artículo, y es que en Windows 10 podemos instalar Ubuntu gracias al Windows Subsystem for Linux, desarrollado por la propia Microsoft.

Pero primero deja que te aclare un par de cosas:

Lo que instalas es un Ubuntu sin escritorio, así que si no te sientes cómodo con los comandos UNIX mejor no sigas.

Te preguntarás qué tiene que ver Windows y Linux en un blog sobre desarrollo Swift. Pues que puedes instalar las versiones estables y snapshots de Swift en Windows 10 y ejecutar su compilador gracias al Windows Subsystem for Linux.

Preparando Windows 10

Lo primero que tenéis que hacer es aseguraos que sois administradores de la máquina en la que queremos instalar Windows Subsystem for Linux.

Si lo somos tenemos que activar las funciones para desarrolladores. Para ello vamos al apartado de Seguridad en la Configuración del sistema y marcamos la opción Modo de Programador

Ahora vamos a activar el soporte para Windows Subsystem for Linux. Se encuentra dentro de la sección Activar o desactivar las características de Windows.

Allí tenemos que marcar la opción Subsitema de Windows para Linux (beta)

Para acceder a esta sección podemos buscarla con Cortana en lugar de navegar por las distintas ventanas del sistema.

Reiniciamos el sistema y ya estamos listos para instalar Bash en nuestro ordenador.

Instalando Bash (Ubuntu)

Tenemos Windows 10 preparado así que ha llegado el momento de instalar el Bash. Vamos a abrir una consola de comando y escribimos el comando…

C:\Users\adolfo> bash

Contestamos a un par de preguntas y tras un momento ya tenemos Ubuntu listo para usarse en nuestro Windows 10.

Por cierto, entre esas preguntas está la creación del usuario y contraseña del root del sistema y no hace falta que coincida con ninguna cuenta de Windows presente en el ordenador.

Swift 5 en Windows 10

Lo primero de todo es descarga el último snapshot de Swift 5 que encontraremos en la sección de descargas de la web de Swift.

Y para saber qué versión de Ubuntu es la que tenemos instalada podemos usar el comando lsb_release -a

Así que abrimos el Bash de Ubuntu desde Windows

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.2 LTS
Release:        16.04
Codename:       xenial

Descomprimimos el paquete en la ruta del nuestra elección sin preocuparnos de la ubicación dentro del sistema de archivos ya que Bash tendrás acceso completo a él.

¿Quiere decir esto que ya podemos usarlo en Ubuntu? Me temo que nos quedan un par de cosas más por hacer.

En la Consola Bash de Ubuntu actualizamos el sistema de paquetes

 $ sudo apt-get update

Con esta actualización se supone que ya debe funcionar el compilador, pero por si pruebas y no te funciona debes instalar los siguientes paquetes…

 $ sudo apt-get install clang libicu-dev libpython2.7

Ejecutando el compilador de Swift

Ahora sí, vamos a ejecutar el compilador, pero para ello necesitamos escribir algo de código Swift. Abajo os dejo un Gist que se limita a sacar un mensaje en la consola.

Guardamos el archivo en el directorio que queramos, en mi caso en el raíz de la unidad D y le he llamado Prueba.swift

En la consola de Ubuntu nos dirigimos al ráiz de la unidad D con el comando…

$ cd /mnt/d

E invocamos al compilador con el comando…

$ /mnt/d/swift5/usr/bin/swiftc -emit-executable -o Prueba Prueba.swift

En este caso yo he instalado el snapshot de Swift 5 en la ruta D:\swift5 que se corresponde en Unix con /mnt/d/swift5. El compilador se encuentra en la carpera usr/bin dentro del directorio de Swift.

La propiedad -emit-executable indica que quiero generar un archivo ejecutable, al que llamo Prueba y con -o le digo el nombre del archivo de salida.

Antes de que alguien se venga muy arriba os diré que no podéis generar un ejecutable de Windows. Si intetáis ejecutar el archivo generado en Windows 10 veréis un mensaje como este…

Y ahora vamos a invocar el ejecutable generado por el compilador. Para eso simplemente escribimos el nombre del archivo de salida en el Bash

$ ./Prueba

Si todo ha ido bien vereís algo como esto

Extra

Si no quieres escribir siempre la ruta completa del compilador de Swift puedes añadirla a la variable de entorno PATH de Windows.

Sí, has oído bien, a la de Windows. Cuando se levanta el Bash de Ubuntu, éste importa automáticamente las variables de entorno de Windows.

QUIZÁ TE INTERESE…

Adolfo Written by:

Me gustan las camisetas y las zapatillas de deporte. Desarrollo con Swift para iOS, macOS, watchOS y tvOS.. También UI/UX Me ha dado tiempo a publicar algunas apps y a escribir algún artículo. Una vez quedé segundo en un Hackathon.