Como Instalar Msys2 PDF
Como Instalar Msys2 PDF
Como Instalar Msys2 PDF
Página 1 de 23
Que es Msys2
MSYS2 es un entorno similar a Unix dentro de Windows. Esto permite tener una consola con Bash y otros shells, así
como la mayoría del toolchain de GNU; grep, gcc, make, gdb... etc.
Tambien es lo que siempre debio ser MinGW y MSYS. Utiliza un gestor de paquetes, concretamente Pacman, el
usado en la distribución del Linux Arch.
¿Donde desacargarlo?
Una vez terminado el proceso de instalación paso 4 (mostrado arriba), que lanzar MSYS2, surge en la ventana del
ordenador la siguiente ventana:
$ pacman -Syuu
al presionar el botón <enter> en el teclado aparecerán una serie de instrucciones que deben se seguirse , y repetir
este paso hasta que en la pantalla se muestre el mensaje de que ya no existen paquetes que den ser actualizados.
Página 2 de 23
Desde la versión de pacman 4.2.1.16187 se tiene un programa (script) llamado update-core que permite la
actualización de MSYS2 de la manera apropiada. Para la actualización de la instalación de MSYS2 se requiere
ejecutar la instrucción:
update-core
Si algunos de los paquetes se actualiza durante la ejecución de la instrucción anterior se debe volver a reiniciar
MSYS2, es decir volver a lanzar MSYS2 a fin de que vuelva a aparecer la ventana:
pacman -Suu
Con la instalación estándar del entorno MSYS2, en el directorio donde se encuentra almacenado en el disco duro del
ordenador, es decir en C:\msys64 se puede observar que en ese directorio existen diferentes asignadas para el
funcionamiento del entorno MSYS2, pero se pueden detectar dos carpetas mingw32 y mingw64 asignadas para
almacenar los archivos que con el que funciona el compilador mingw para 32 y 64 bit respectivamente, estos
carpetas están vaciás en la instalación que se tiene por defecto.
Página 3 de 23
Es decir, el sistema MSYS2 es bastante austero, para el desarrollo de programas C/C++ es necesario instalar el
compilador. Este compilador viene incorporado en un paquete
Para poder instalar nuevos paquetes que no vienen incluidos en la instalación que se tiene por defecto, se utiliza la
instrucción:
pacman -S <package_names|package_groups>
en donde los nombres dentro de los símbolos < > , corresponden al nombre del paquete grupo que se pretende
instalar.
Por ejemplo, consideremos la instrucción:
En el comando anterior se pretende instalar una colección de paquetes que contiene diferentes programas o grupos
de programas (paquetes). Si se intenta instalar un grupo de paquetes, Pacman preguntará si el usuario instala un
determinado paquete del grupo o todo el grupo de paquetes.
pacman -R <package_names|package_groups>
en donde los nombres dentro de los símbolos < > , corresponden al nombre de la colección de paquetes que se
pretende remover.
Para buscar los paquetes que se tienen en el repositorio (y aquellos que no pueden ser instalados en el ordenador
se emplea la siguiente instrucción:
Página 4 de 23
Se puede observar que de este grupo de paquetes ninguno se encuentra instalado en MSYS2.
Si lo que en realidad se requiere buscar entre los paquetes que ya se han instalado en el sistema MSYS2, se usa la
siguiente instrucción:
se pretende buscar los paquetes gcc entre la colección de paquetes descargados en el ordenador en el sistema
MSYS2, con lo que se obtiene la siguiente respuesta:
Nota : Es importante hacer notar que en sistema MSYS2, que al descargar este sistema y se selecciona la opción de
64 bits, se generan tres accesos a la consola MSYS, estos son los del entorno de 64 bits, 32 bits y el empleado para
Página 5 de 23
el desarrollo de herramientas usando el entorno MSYS. Lo normal para desarrollar aplicaciones es usar el entorno
de 32 y 64 bites.
Es importante saber que el programa de distribución para MSYS2 utiliza el puerto Pacman de Arch Linux para
gestionar (instalar, quitar y actualizar paquetes binarios y también construir esos paquetes en primer lugar.
Se tienen tres paquetes de reposición llamados msys2, mingw32 y mingw64, el programa msys2 (desde el
repositorio msys2) es un programa que depende de msys-2.0.dll y es bastante similar al programa Cygwin
(el cual es una capa de emulación POXIS para Windows). El software nativo de Windows (desde la perspectiva de
este proyecto) es un programa que no depende de msys-2.0.dll y vincula de manera dinámica al altamente
archivo msvcrt.dll .
De esta manera MSYS2 hace referencia al software de distribución, mientras que msys2 o msys hacen al
repositorio, los paquetes en el que el repositorio y el software en los cuales esos paquetes se vinculan a msys-
2.0.dll .
En MSYS se tienen dos paquetes:
• msys packages – estos se ejecutan sobre la capa del emulador y son típicamente solo programas POSIX.
• mingw packages – estos se ejecutan de manera nativa tal como cualquier otro programa en Widows.
Se debe considerar estos dos sistemas como separados en donde los paquetes msys2 deben ser generalmente
solo construcciones que dependen de los paquetes mingw. No pueden ser vinculados un programa mingw con
respecto a una librería msys.
Lo anterior significa que lo primero que se debe decidir el subsistema (y el repositorio) es el correcto para un nuevo
paquete. El conjunto de elementos que acompañan al subsistema msys2 es muy reducido:
Página 6 de 23
• componentes elementales POSIX, tal como: filesystem, msys-runtime, . . .
• programas secundarios (supporting programs) que son difíciles de conectar a Windows: pacman, bash,
automake, make, . . .
• programas que cierran las brechas (bridging the gap): minty, winpty, . . .
• programas secundarios aún que sean portables tal como: python, man, vine, git, . . .
En otras palabras, si se requiere un programa para construir programas nativos, pero que por su naturaleza son
difíciles de conectar, estos pueden construirse con un paquete msys2. Cualquier otra cosa que se necesita debe
hacerse con un paquete mingw o revisado de manera individual.
Software de construcción
Con el fin de ser capaz de compilar un programa o crear un paquete, es necesario instalar paquetes básicos, debido
a la instalación estándar del sistema MSYS2, este carece de herramientas de construcción.
El grupo de paquetes principales que se requieren para instalar si lo que se desea es construir desde el paquete
PKGBUILD son:
En caso de no instalar este grupo de paquetes, la construir puede fallar con la aparición de errores inesperados.
Nótese que -- en caso contrario a lo que se espera, el paquete base-devel -- no contiene el programa gcc ni
tampoco binutils.
Página 7 de 23
Página 8 de 23
Página 9 de 23
Página 10 de 23
Página 11 de 23
Página 12 de 23
Página 13 de 23
Página 14 de 23
Página 15 de 23
Instalación de mingw-w64-x86_64
Se procede a instalar toda la biblioteca correspondiente al paquete mingw-64 para 64 bit en el entorno MSYS2,
mediante la instrucción:
pacman -S mingw-w64-x86_64
Se selecciona la opción por omisión al presionar la tecla <enter>, se generan los siguientes mensajes:
Página 16 de 23
Pasos para acceder a la ventana interactiva del entorno
MSYS2, mingw-64 y mingw-32
A) En esta opción se puede acceder abriendo el directorio llamado msys64 localizado en la siguiente ruta del
disco duro del ordenador: C:\msys64
• Dentro de este directorio se intenta localizar los archivos ejecutables msys2.exe, mingw64.exe,
mingw32.exe y msys2_shell.cmd como se ve a continuación:
Página 17 de 23
•
Página 18 de 23
•
C) Una tercera opción es emplear la variable de entorno de Windows, pero para la configuración del actual
ordenador, en la cual ya existen varias variables de entorno, con el mismo nombre en diferentes directorios,
no es conveniente emplear este método a fin de evitar conflictos al en la ejecución de los archivos.
Se procede a ejecutar el archivo ejecutable msys2.exe, a fin de desplegar la ventana interactiva msys2 (terminal de
Linux en Windows) obteniendo lo siguiente:
Se procede a escribir después del símbolo de señalización $, el comando bash, seguido de las instrucciones:
--version && uname -a && uname -r && uname -m
Página 19 de 23
$ bash --version && uname -a && uname -r && uname -m
En donde se muestra la versión que se tiene de bash , que en este caso es la versión 4.4.23(1) -release
(x86_64pc-msys)
Debido al hecho que ya se instaló en MSYS2 el compilador gcc, se procede a determinar la versión de este
compilador, escribiendo en la ventana de de comandos msys2.exe, se escribe después del símbolo de señalización
$, se escribe la instrucción gcc –version, es decir:
$ gcc –version
Esta información indica que se tiene la versión 7.4.0 del compilador gcc en msys2.
Para poder determinar el directorio de trabajo que tiene la ventana interactiva en msys2, se utiliza el comando linux
pwd (print work directory) después del símbolo del indicador $, escribiendo lo siguiente:
$ pwd
Página 20 de 23
Al presionar la tecla <enter> se despliega la siguiente información:
$ /c/Users/faro/Documents
Se observa que ya se cambió el directorio de trabajo como se observa en la franja gris de la ventana de comandos y
de nombre MSYS en color amarillo en donde se muestra la dirección del nuevo directorio de trabajo.
En la carpeta Documents, se encuentra el archivo de texto: frases.tx, como se ve a continuación:
Página 21 de 23
Se emplea el comando Linux cat (concatenate) que permite visualizar el contenido de un archivo de texto (archivo
con extensión .txt) sin la necesidad de un editor de texto.
$ cat frases.txt
Nota : no se debe utilizar el shell (ventana de comandos interactiva) de msys2 es empleada para construir
aplicaciones que utilizan una capa adicional de POSIX parecida a Cygwin, mientras que la shell de mingw64 y
mingw32 son utilizadas para construir aplicaciones nativas de Windows.
Una manera de conocer que se emplea la ventana de comandos interactiva (shell) correcta es ver la respuesta al
escribir la siguiente instrucción en tal ventana de comandos: echo $MSYSTEM, la respuesta que genera este
comando, es el nombre de la ventana de comandos que se emplea:
Página 22 de 23
La información anterior se localiza en la siguiente dirección electrónica:
https://ghc.haskell.org/trac/ghc/wiki/Building/Preparation/Windows
Página 23 de 23