Escrito por Iván Alonso el Miércoles 2 de Julio de 2008

¿Qué es Cygwin?

A nivel no técnico es una forma de hacer que las aplicaciones desarrolladas para Linux funcionen bajo Windows. De forma un poco más técnica es una librería que proporciona una capa de emulación de una parte del API de Linux, por lo que código programado originalmente para este sistema operativo puede recompilarse para funcionar sobre esta capa de emulacion sin tener que reprogramar nada.

Aparte de eso, también es un entorno que proporciona muchas aplicaciones Linux útiles para ser funcionales bajo Windows, pudiendo utilizar una gran cantidad de estas bajo una terminal con el “Look and feel” propio de Linux.

Cygwin

¿Para qué lo quiero?

Para poder trabajar por línea de comandos con utilidades mucho mejores que las del cmd.exe de Windows, para instalar y/o probar cosas que no existen para Windows, para ponerme un servidor ssh en cada máquina y hacer así las transferencias de archivos de un equipo a otro en una red local de un modo seguro. Para un millar de cosas que vas haciendo una vez que te acostumbras a tener todas estas utilidades disponibles.

Vamos a instalarlo para probar.

Empezando

Nos descargamos de su página web el archivo setup.exe [~400 KB]. Pesa poco y contiene los menús de configuración necesarios para elegir qué queremos instalar y desde dónde se lo descargará. No es un sistema tan elegante como el de ubuntu o debian pero casi.

Empezando

Cuando queramos actualizar el sistema, descargar nuevas aplicaciones o desinstalar las que tenemos, sólo tenemos que volver a descargar y ejecutar este setup.exe. A la hora de escribir este post, la versión que estoy utilizando es la 2.573.2.2.

Configurando

Seleccionamos la opción ‘Install from Internet‘ de modo que se descargue todas las aplicaciones necesarias. En la siguiente pantalla seleccionamos el directorio de instalación. Yo suelo utilizar ‘c:\Archivos de Programa\Cygwin’, y aunque nos dará un aviso de que no es recomendable tener espacios en blanco en el nombre de esta ruta a mí nunca me ha dado ningún problema. Mantenemos las opciones de instalar para todos los usuarios y el tipo de archivo por defecto en formato Unix (si nunca trabajáis con Linux os será más cómodo usar únicamente formatos Windows, pero yo que suelo mover cosas de un lado a otro prefiero utilizar este como estándar).

Configurando

Esto define como se tratarán los finales de línea en los archivos de texto, y es la razón de que quizá hayáis visto archivos con ^M en los retornos de carro y similares. Una mala “traducción” de un entorno a otro.

Como Local Package Directory (la carpeta donde se descargará las aplicaciones antes de instalarlas) utilizaremos la que más rabia nos dé, aunque para tenerla localizada cerca de la anterior utilizaré ‘c:\Archivos de Programa\Cygwin Packages’.

Select Your Internet Conection: obviamente vuestro modo de conexión a internet. Si tenéis un proxy podéis especificarlo o sacar la configuración del Internet Explorer (¿para cuando de Firefox?), pero yo siempre he trabajado con conexiones directas.

Tras esta configuración se descargará una lista de todos los servidores que tenemos disponibles para descargar los paquetes de las aplicaciones, de donde podemos seleccionar la que más apetezca. En el momento de escribir esto no hay ninguno disponible en españa (.es) así que utilizaré uno cercano (por aquello de que en teoría un nodo más cercano tiene mejores tiempos de respuesta), por ejemplo uno alemán (.de).

Una nueva descarga para obtener el paquete de instalación principal y se nos mostrará la lista completa de todos los paquetes disponibles. Tal y como está tendremos un sistema perfectamente utilizable, por lo que podemos hacer click en siguiente y comenzar a descargar e instalar.

Configurando

Si queremos otras cosas concretas, haciendo click sobre el símbolo [+] desplegamos cada categoría, y sobre las flechas circulares cambiamos el estado de cada aplicacion. Por ejemplo desplegamos Editors y hacemos click sobre la palabra Skip del paquete ‘nano‘ (el editor de textos que suelo utilizar). Cambiará su estado de Skip al número de versión que se va a instalar (2.0.6-1). Si seguimos haciendo click veremos que otras versiones tenemos disponibles para instalar o volveremos al estado de Skip. En Utils seleccionaremos también ‘util-linux‘ que contiene varios comandos que nos vendrán de perlas.

Con las opciones que podemos seleccionar en la parte superior derecha tendremos acceso a “preselecciones” de paquetes con distintas versiones: Current la actual, Previous la última considerada estable o Experimental para las ultimas versiones de los paquetes. Siempre utilizaremos Current para un correcto funcionamiento de todo.

Y con el botón View cambiamos la forma en que se nos muestra la lista de paquetes, siendo la más útil aquella que nos ordena por categorías, que es la que se activa por defecto.

Hacemos click en ’siguiente’ y esperamos a que termine de descargar e instalar. Para esta primera instalación tendrá que descargar una gran cantidad de información, por lo que puede tardar un rato, aunque no será más de unos minutos (en mi caso unos cinco minutos con un ancho de banda menor de 100 KB/s).

En la última pantalla nos pedirá confirmación para crear iconos en el escritorio y en el menú inicio y listo.

Iniciando Cygwin

Tras arrancar el entorno nos dará un mensaje de que aún no han sido creados todos los usuarios y grupos en esta “simulación” de Linux que tenemos dentro de nuestro Windows, por lo que tenemos que llevar a cabo el último paso que nos pide:

$ mkpasswd -l -d > /etc/passwd
$ mkgroup -l -d > /etc/group

Para que sea más facil interactuar con las terminales (esto es cosa de Windows que es un infierno de usabilidad cuando trabajamos en modo texto) hacemos click derecho sobre la barra de título de la aplicación y seleccionamos ‘Propiedades’. En la pestaña Opciones tenemos el recuadro ‘Opciones de edición’ donde marcamos ‘Modalidad de edición rápida’.

Edición rápida

Al aceptar nos preguntará sobre qué queremos aplicar estas nuevas opciones, y marcaremos ‘Modificar el acceso directo que inició esta ventana’ de modo que siempre funcione del mismo modo.

Ahora el copy-paste se hace igual que en linux. Seleccionamos con el botón izquierdo. Copiamos con un click derecho, y el segundo click derecho será para pegar lo que hemos copiado.

Ahora que el proceso ha terminado podemos borrar el archivo setup.exe (cuando lo volvamos a necesitar podemos volver a descargarlo, dado que probablemente sea una versión nueva) y, en caso de necesitarlo, los paquetes que almacenamos en ‘Cygwin Packages

Y ya está, Cygwin listo para funcionar.

Etiquetas: , ,

Esta entrada fue escrita el Miércoles 2 de Julio de 2008 a las 10:01 am y está archivada en la categoría Blog. Puedes seguir las respuestas y comentarios en el feed RSS 2.0. Puedes dejar un comentario, o dejar un trackback desde tu propia página.

 

8 comentarios en “Instalando Cygwin”

  1. S pasó por aquí el Miércoles 2 de Julio de 2008 a las 10:01 am, y escribió:

    Muy buen artículo.

    Deberías probar Windows PowerShell, que integra una consola de comandos del sistema con la disponibilidad para usar .NET para scripts y sus objetos para controlar el estado del sistema.

  2. Iván Alonso pasó por aquí el Miércoles 2 de Julio de 2008 a las 10:01 am, y escribió:

    Le eche un vistazo en su momento, pero muy por encima. Para mi el principal problema que tiene es que no es independiente de la plataforma, y tendria que aprender a usar otra serie de comandos y un monton de pijadas :(

    http://en.wikipedia.org/wiki/Comparison_of_computer_shells

    Creo que define mucho la filosofia de Microsoft: “hacemos una terminal con nuestros propios comandos y nuestro propio entorno, sobre el cual se puedan programar cosas que solo sirvan para el powershell”.

    De todas formas no he trasteado mucho con ella, asi que igual me estoy columpiando (es que a mi enseguida me sale la vena antimonopolistica) ;)

  3. neverbyte.net » Archivo » Usando Eclipse para desarrollo C++ sobre Windows pasó por aquí el Miércoles 2 de Julio de 2008 a las 10:01 am, y escribió:

    [...] el compilador gcc, así como otras herramientas que puedan hacernos falta (make por ejemplo). Hay un post de hace poco en esta misma página que explica cómo (ahora todo encaja como un gran puzzle sideral [...]

  4. cjvr pasó por aquí el Miércoles 2 de Julio de 2008 a las 10:01 am, y escribió:

    Saludos. Y como hago en caso de no tener conexión a Internet en mi PC y necesite descargar Cygwin desde uno que sí esté conectado para llevarlo al mío.

  5. Iván Alonso pasó por aquí el Miércoles 2 de Julio de 2008 a las 10:01 am, y escribió:

    Ummm… se que una de las opciones es instalar dejando ademas los paquetes descargados en una carpeta concreta. Puedes probar a instalar cygwin en el ordenador que si tiene conexion diciendole que guarde todos esos paquetes, grabar esa carpeta completa mas el ejecutable de instalacion de cygwin en un cd, e intentar hacer la instalacion en el ordenador sin conexion desde ese cd… Importante: es la carpeta donde se ha descargado todo de internet, _no_ donde ha instalado, el contenido es distinto.

    Creo que en el menu de instalacion hay una opcion para decirle si quiere descargar los paquetes de internet o cogerlos de una carpeta local (el cd), pero la verdad es que te hablo de memoria y no se si funcionaria o no.

    Es lo que se me ocurre, puedes probar :)

    Suerte!

  6. neverbyte.net» Blog Archive » Instalar un servidor ssh en Windows pasó por aquí el Miércoles 2 de Julio de 2008 a las 10:01 am, y escribió:

    [...] esto en una máquina Windows? La solución más fácil es mediante Cygwin. Aquí os dejé un manual sobre cómo instalarlo en vuestra máquina Windows. Debemos seguir ese manual e instalar algunos nuevos paquetes con la [...]

  7. Lucas L pasó por aquí el Miércoles 2 de Julio de 2008 a las 10:01 am, y escribió:

    Hice todo tal cual lo decis, muy bien explicado por cierto.
    Cuando llego a la parte de poner los usuarios como en linux, me dice ” mkpasswd : [1355] El dominio especificado no existe o no se pudo establecer conexion con el.”
    Probe mostralo por consola (sin el pipe) para ver que escribia y pone el SYSTEM, Local Service, etc… y al final, “mkpasswd … El dominio…”
    Que puede ser?
    Muchas gracias

  8. Iván Alonso pasó por aquí el Miércoles 2 de Julio de 2008 a las 10:01 am, y escribió:

    Alguna vez lo he visto en algun equipo, pero no me ha significado ningun problema posterior, puedes seguir utilizandolo sin problema. Asumo que debe venir por tener el equipo añadido a un dominio sin existir un servidor de dominio (quiza, estoy presuponiendo mucho).

Deja un comentario