Home » Guías » Instalando Swift 3 en Windows 10 Actualización de Aniversario
Windows 10 Swift

Instalando Swift 3 en Windows 10 Actualización de Aniversario

Muchos hemos soñado con este momento, aquel en el que Swift llegara a Windows. Y ha sucedido. Bien es cierto que no directamente, pero sí aprovechando una característica muy interesante que su última versión Windows 10 Actualización de Aniversario ha incorporado: el subsistema de Windows para Linux. Creado junto a Cannonical, responsables de Ubuntu, esta característica permite instalar el shell de Ubuntu (más conocido como bash shell) en nuestro Windows 10 y, por consiguiente, poder instalar Swift 3 en Windows. Cuando Microsoft presentó esta característica imaginé que esto podría hacerse y así se ha confirmado.

Instalando Ubuntu Bash Shell (subsistema Windows para Linux)

Lo primero que tenemos que hacer, si no lo hemos hecho ya, es instalar el bash shell de Linux en nuestro Windows y para ello hemos de activar el modo de programador del sistema. Es probable que si tenéis Visual Studio ya esté activado, pero aun así no está de más que lo miremos. Basta ir a la app de “Configuración” y luego pulsar en “Actualización y Seguridad”. Una de las últimas opciones es “Para programadores”. Entramos y de los tres modos que hay elegimos “Modo de programador”. Hemos de notar, no obstante, que esta opción es igual al GateKeeper del Mac. La primera opción nos limita a que solo podemos instalar apps de la Windows Store, la segunda permite también apps de fuentes de confianza y la que vamos a elegir permite instalar cualquier cosa en Windows. Ojo con esto.

Modo programador en Windows 10

Ahora abrimos la barra de búsqueda de Windows y buscamos “Características de Windows” cuyo resultado más claro será “Activar o desactivar las características de Windows”. Lo elegimos y nos aparecerá un listado enorme de posibles funciones a elegir. Buscamos (casi al final) el que se llama “Subsistema de Windows para Linux (Beta)”.

Activar o desactivar las características de Windows

Como es habitual en Windows, será necesario reiniciar una vez hecha la instalación. Cuando hayamos reiniciado, en la misma búsqueda del sistema escribimos bash y veremos que podremos lanzar un ejecutable con este nombre. La primera vez que lo ejecutemos nos pedirá si queremos instalar Ubuntu en Windows. Decimos que sí y comenzará el proceso. Como vemos por el mensaje, es la propia Cannonical, responsables de Ubuntu, quienes suministran esta opción.

Una vez terminado el proceso, volvemos a buscar en la barra de búsqueda pero esta vez solo “Ubuntu”. Veremos que aparece “Bash en Ubuntu en Windows”. Ejecutamos y listo. Ya tenemos Linux en nuestro Windows (al menos el shell).

Instalando Swift 3

Aquí hemos de seguir un proceso similar al que vimos en la pertinente guía en su día, que podéis leer pinchando aquí. Aunque como las versiones cambian mucho, vamos a centrarnos en seguir los pasos actuales para la versión de Swift 3 que necesitamos.

Lo primero que notamos al entrar en este bash es que podemos llamar al instalador genérico de Ubuntu apt-get, lo cual es la clave para poder usar Swift. Así que lo primero que vamos a hacer es instalar el compilador clang y el soporte de Unicode necesario para usar Swift.

Hemos de tener en cuenta que la unidad C: está montada dentro de las carpetas /mnt/ propias de Linux para el montaje de dispositivos, así que vamos a crear una carpeta Swift en el raíz de nuestro C: (si preferimos otro sitio, somos libres, pero nosotros vamos a trabajar así). Creamos la carpeta Swift con el explorador de Windows y luego desde el bash accedemos a /mnt/c/Swift.

Ahora, nos vamos a la página de Swift y descargamos la última versión del lenguaje para Ubuntu, pero ojo, para la versión 14.04. Pulsamos aquí para descargar (pulsad sin miedo, se abrirá una nueva pestaña o ventana). Una vez descargado ya tenemos el archivo swift-3.0.1-RELEASE-ubuntu14.04.tar.gz en nuestra unidad. Obvia decir que este archivo ha de estar en la carpeta Swift que hemos creado. Volvemos al bash de Linux y lo descomprimimos.

Ya tenemos Swift en Windows y podemos empezar a trabajar. Si queremos ejecutar ficheros .swift compilados directamente, solo tenemos que ir a la carpeta usr/bin desde donde estamos y llamar al compilador swiftc. Si escribimos swift --version veremos que nos dice que es la versión 3.0.1 para Linux y todo funciona a la perfección.

Si creamos un pequeño programa tonto como un Hola Mundo, solo tenemos que grabar un fichero .swift en esta carpeta, usando cualquier editor de texto que tengamos en Windows. Debe estar en la carpeta C:\Swift\usr\bin y lo vamos a llamar, por ejemplo, helloworld.swift.

Una vez grabado, lo compilamos accediendo primero a la ruta del compilador con cd /mnt/c/Swift/usr/bin y luego usamos el comando swiftc, de forma tan simple como esta:

Terminado de compilar, basta ejecutar el fichero generado para ver el resultado:

Si queremos hacer algo más, como un proyecto más completo, entonces tenemos que incluir la ruta del compilador en el PATH del sistema.

Ahora podemos volver a la carpeta Swift desde Windows, crear una nueva carpeta que se llame Prueba (por usar un nombre original) y dentro dejamos la misma vacía. Volvemos a Ubuntu, vamos a esta carpeta con la ayuda de cd /mnt/c/Swift/Prueba y allí le decimos que nos genere un proyecto vacío con:

Hecho esto, generará una estructura de archivos, donde podemos poner nuestro código en el fichero main.swift que está dentro de la carpeta Sources que se ha generado. En él podemos poner nuestra línea o cualquier cosa más que queramos. Lo más cómodo es usar un editor como Atom que además tiene extras que reconocen el marcado de código de Swift. Para construir nuestro proyecto solo hay que ejecutar desde la ruta /mnt/c/Swift/Prueba la llamada de construcción:

Y luego tendremos nuestro ejecutable en la ruta oculta .build/debug/ del raíz de Swift. El nombre elegido es el mismo de la carpeta, es decir, Prueba. Por lo tanto si ejecutamos /mnt/c/Swift/.build/debug/Prueba veremos nuestro resultado.

Swift en Windows

Es una forma indirecta de tenerlo, pero es una forma válida. Tenemos Swift 3.0.1 para Linux instalado y no hemos necesitado nada excesivamente complejo. Solo instalar una característica de nuestro Windows y listo. Ahora solo queda que compréis el libro “Aprendiendo Swift 3” (si aun no lo tenéis) y comencéis a trabajar. Un saludo y Good Apple Coding.

Acerca de Julio César Fernández

Analista, consultor y periodista tecnológico, desarrollador, empresario, productor audiovisual, actor de doblaje e ingeniero de vídeo y audio.

Otras recomendaciones

Codable (I)

Codable (I), cargando un JSON hacia un struct

Aprendemos a cómo cargar el contenido de un archivo JSON directamente en instancias de tipo struct con el nuevo protocolo Codable y la serialización de Swift 4. Un proceso no solo simple, sencillo y potente, si no que nos evita tener que usar diccionario, sabernos claves de memoria... simplemente cargamos el JSON, parseamos y listo. Magia Swift 4.

  • Joshua Díaz Robayna

    Buenos días en el primer paso me da este error:

    E: No se pudo abrir el fichero de bloqueo «/var/lib/dpkg/lock» – open (13: Permiso denegado)
    E: No se encontró un archivo de réplica «/var/lib/dpkg/»

    ¿Cómo podría solucionarlo?

    • Es un fallo temporal de Linux, pon la siguiente secuencia de comandos:

      sudo fuser -vki /var/lib/dpkg/lock
      sudo rm -f /var/lib/dpkg/lock
      sudo dpkg –configure -a
      sudo apt-get autoremove

      Tras esto, el comando apt-get debería funcionar. Es probable que se haya quedado algún proceso de instalación a mitad y el instalador se haya quedado bloqueado.

      Un saludo

  • Javier Martinez

    al ejecutar la linea:

    swift package init –type executable me manda el siguiente mensaje:: The program ‘swift’ is currently not installed. You can install it by typing:
    apt-get install python-swiftclient
    En el tutorial no indica instalar python-swiftclient

    • Hola Javier,
      Si has seguido todos los pasos, no has incluido una ruta correcta en:
      export PATH=/mnt/c/Swift/usr/bin:”${PATH}”
      Esa ruta es para la carpeta Swift (con la S mayúscula) en C:. Si no has puesto ahí Swift no se encuentra y da ese error.
      Un saludo

  • La correcta es esta: export PATH=”/mnt/c/Swift/usr/bin:/mnt/c/Swift/Prueba”.

    Un saludo