Программирование ARM Установка MSYS2 на Windows Thu, October 10 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Установка MSYS2 на Windows Печать
Добавил(а) microsin   

MSYS2 это набор утилит и библиотек, предоставляющий среду для сборки программного обеспечения в стиле Unix. MSYS часто используется для сборки ПО для микроконтроллеров, чтобы обеспечить совместимость рабочего окружения в Windows и Linux.

MSYS2 содержит утилиту командной строки терминала mintty, bash, системы управления версиями git и subversion, утилиты наподобие awk, grep, и даже системы сборки наподобие autotools. Весь этот инструментарий основан на модифицированной версии Cygwin. Несмотря на то, что некоторые из этих основных частей основаны на Cygwin, в MSYS2 основной фокус был сделан на предоставлении рабочего окружения сборки для традиционного ПО Windows, и использование частей Cygwin сведено к минимуму. MSYS2 предоставляет традиционную, обновляемую среду сборки для GCC, mingw-w64, CPython, CMake, Meson, OpenSSL, FFmpeg, Rust, Ruby, и многих других систем.

Для упрощения установки пакетов и их обновления в MSYS2 включена система управления пакетами Pacman, которая знакома пользователям Arch Linux. Она предоставляет множество мощных функций, таких как разрешение зависимостей, простое полное обновление системы, а также прямую и воспроизводимую сборку пакетов. Репозиторий MSYS2 содержит более 2600 предварительно собранных пакетов, готовых к установке.

[Установка MSYS2]

1. Загрузите и запустите инсталлятор (например msys2-x86_64-20220603.exe). Для установки требуется 64-разрядная версия Windows 7, либо более свежая Windows.

2. По запросу инсталлятора укажите каталог установки. Используйте том NTFS (не FAT), указывайте максимально короткое имя, используйте только английские символы ASCII, без символов ударения, без пробелов, без сетевых путей и подключаемых дисков.

MSYS2 install path

3. После процедуры копирования файлов инсталлятор покажет окно с предложением запуска MSYS2, кликните Finish.

MSYS2 install finish

4. Откроется окно командной строки MSYS2. Теперь нужно обновить базу данных пакетов и основные пакеты. Скорее всего Вам не нужна минимальная установка MSYS2, и тогда нужно выполнить 2 дополнительных шага. Сначала запустите команду pacman -Syu:

$ pacman -Syu
:: Synchronizing package databases...
 mingw32                        805.0 KiB
 mingw32.sig                    438.0   B
 mingw64                        807.9 KiB
 mingw64.sig                    438.0   B
 msys                           289.3 KiB
 msys.sig                       438.0   B
:: Starting core system upgrade...
warning: terminate other MSYS2 programs before proceeding
resolving dependencies...
looking for conflicting packages...
 
Packages (6) bash-5.1.004-1  filesystem-2021.01-1
             mintty-1~3.4.4-1  msys2-runtime-3.1.7-4
             pacman-5.2.2-9  pacman-mirrors-20201208-1
 
Total Download Size:   11.05 MiB
Total Installed Size:  53.92 MiB
Net Upgrade Size:      -1.24 MiB
 
:: Proceed with installation? [Y/n]
:: Retrieving packages...
 bash-5.1.004-1-x86_64            2.3 MiB
 filesystem-2021.01-1-any        33.2 KiB
 mintty-1~3.4.4-1-x86_64        767.2 KiB
 msys2-runtime-3.1.7-4-x86_64     2.6 MiB
 pacman-mirrors-20201208-1-any    3.8 KiB
 pacman-5.2.2-9-x86_64            5.4 MiB
(6/6) checking keys in keyring       100%
(6/6) checking package integrity     100%
(6/6) loading package files          100%
(6/6) checking for file conflicts    100%
(6/6) checking available disk space  100%
:: Processing package changes...
(1/6) upgrading bash                 100%
(2/6) upgrading filesystem           100%
(3/6) upgrading mintty               100%
(4/6) upgrading msys2-runtime        100%
(5/6) upgrading pacman-mirrors       100%
(6/6) upgrading pacman               100%
:: To complete this update all MSYS2 processes including this terminal will be closed.
 Confirm to proceed [Y/n]

Введите Y для завершения всех процессов и закрытия окна терминала.

5. В меню Пуск введите команду MSYS2 MSYS. В окне терминала снова введите команду pacman -Syu, чтобы обновить основные пакеты:

$ pacman -Syu
 mingw32 is up to date
 mingw64 is up to date
 msys is up to date
:: Starting core system upgrade...
 there is nothing to do
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...
 
Packages (20) base-2020.12-1  bsdtar-3.5.0-1
              [... перечисляются пакеты ...]
 
Total Download Size:   12.82 MiB
Total Installed Size:  44.25 MiB
Net Upgrade Size:       3.01 MiB
 
:: Proceed with installation? [Y/n]
[... загрузка и установка продолжится ...]

6. Теперь MSYS2 готова к работе. Возможно, Вы захотите также установить некоторые утилиты и mingw-w64 GCC.

$ pacman -S --needed base-devel mingw-w64-x86_64-toolchain
warning: file-5.39-2 is up to date -- skipping
[... другие предупреждения ...]
:: There are 48 members in group base-devel:
:: Repository msys
   1) asciidoc  2) autoconf  3) autoconf2.13  4) autogen
   [... перечисляются пакеты ...]
 
Enter a selection (default=all):
:: There are 19 members in group mingw-w64-x86_64-toolchain:
:: Repository mingw64
   1) mingw-w64-x86_64-binutils  2) mingw-w64-x86_64-crt-git
   [... перечисляются пакеты ...]
 
Enter a selection (default=all):
resolving dependencies...
looking for conflicting packages...
 
Packages (123) docbook-xml-4.5-2  docbook-xsl-1.79.2-1
               [... перечисляются пакеты ...]
               m4-1.4.18-2  make-4.3-1  man-db-2.9.3-1
               mingw-w64-x86_64-binutils-2.35.1-3
               mingw-w64-x86_64-crt-git-9.0.0.6090.ad98746a-1
               mingw-w64-x86_64-gcc-10.2.0-6
               mingw-w64-x86_64-gcc-ada-10.2.0-6
               mingw-w64-x86_64-gcc-fortran-10.2.0-6
               mingw-w64-x86_64-gcc-libgfortran-10.2.0-6
               mingw-w64-x86_64-gcc-libs-10.2.0-6
               mingw-w64-x86_64-gcc-objc-10.2.0-6
               mingw-w64-x86_64-gdb-10.1-2
               mingw-w64-x86_64-gdb-multiarch-10.1-2
              [... перечисляются пакеты ...]
 
Total Download Size:    196.15 MiB
Total Installed Size:  1254.96 MiB
 
:: Proceed with installation? [Y/n]
[... загрузка и установка продолжится ...]

7. Для запуска сборки с помощью mingw-w64 GCC закройте это окно и запустите "MSYS MinGW 64-bit" через меню Пуск. Сейчас можно запускать make или gcc для сборки ПО для Windows.

См. ссылки [5, 6] для получения подробной информации по установке, использованию и обновлению MSYS2.

[FAQ по шеллу MinGW/MSYS]

Большинство операционных систем для запуска исполняемых файлов по короткому имени не выполняют поиск по всей файловой системе, потому что это занимало бы слишком много времени. Вместо этого поиск исполняемых файлов производится по списку каталогов, находящемуся в переменной окружения PATH.

Способ изменения путей в PATH зависит от операционной системы.

[MS Windows]

В Windows XP и более поздних версиях можно сделать глобальные изменения этой переменной (либо для текущего пользователя, либо для системы), используя Панель Управления (Control Panel). В Windows 10 нажмите комбинацию клавиш Win+X, выберите Параметры -> Система -> О программе -> справа кликните на ссылку "Дополнительные параметры системы". Откроется диалог "Свойства системы", кликните на кнопку "Переменные среды...", откроется окно редактирование параметров переменных окружения. В этом диалоге можно поменять значение переменной Path как для текущего пользователя, так и для системы.

Из командной строки Windows (окна ввода команд cmd.exe) можно менять переменные окружения командой set. Самый простой способ добавить какой-либо путь в конец списка PATH - использовать следующую команду (в этом примере добавляется каталог c:\msys64\usr\bin):

set PATH=%PATH%;c:\msys64\usr\bin

[MSYS]

MSYS использует стиль командной строки, используемый в операционных системах Linux (Bourne shell), здесь PATH можно поменять командой export. Самый простой способ добавить что-либо в конец PATH (на примере добавления каталога c:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\11.2 2022.02\arm-none-eabi\bin):

export PATH=$PATH:'/c/Program Files (x86)/Arm GNU Toolchain arm-none-eabi/11.2 2022.02/arm-none-eabi/bin'

Обратите внимание на следующие важные моменты:

1. В команде перед именем диска C: стоит прямой слеш.
2. После имени диска нет двоеточия.
3. В качестве разделителя для элементов пути (директорий) используются прямые слеши.
4. Если имена файлов и папок содержат пробелы, то весь путь обрамляется кавычками '.
5. Завершающий прямой слеш в пути отсутствует.

[Перманентное изменение PATH в MSYS]

Импорт $PATH из переменной %Path% Windows. Можно в скрипте msys2_shell.cmd раскомментировать строчку с переменной MSYS2_PATH_TYPE, в результате чего в $PATH будут наследоваться значения из системной переменной окружения %Path% Windows:

rem Для экспорта полного текущего значения PATH в переменную MSYS2 используйте
rem параметр '-use-full-path', или раскомментируйте следующую строку:
set MSYS2_PATH_TYPE=inherit

Шелл MSYS2 запускается скриптом msys2_shell.cmd, который находится в каталоге установки (обычно это c:\msys64\), см. свойства ярлычков MSYS2. Таким образом, можно вручную добавить в этот скрипт команду, которая будет добавлять в $PATH нужные Вам пути.

Добавление пути к $PATH. Можно добавить команду export для модификации $PATH в скрипт автоматически запускаемых команд, см. следующую врезку.

Автоматически запускемые команды можно прописать двумя способами:

1. Если их добавить в конец файла .bash_profile, который находится в домашнем каталоге пользователя (домашние каталоги пользователей хранятся в каталогах папки c:\msys64\home\).

2. Если их добавить в конец файла c:\msys64\etc\profile.

Например, если мы хотим добавить к переменной $PATH путь до компилятора, то в конец можно добавить следующую строку:

export PATH=$PATH:'/c/Program Files (x86)/Arm GNU Toolchain arm-none-eabi/11.2 2022.02/bin'

Сессии MSYS2 запускаются ярлычками, которые появляются после установки:

MSYS2 shortcuts

Например, ярлычок "MSYS2 MinGW x64" содержит в себе следующую командную строку запуска:

C:\msys64\msys2_shell.cmd -mingw64

После запуска этого ярлычка установится текущий каталог пользователя MSYS, который находится в папке c:\msys64\home\имяпользователя. Но есть возможность добавить команду в командную строку скрипта msys2_shell.cmd, которая устанавливать нужный каталог, например каталог компилируемого проекта. Например, можно создать вот такой файл скрипта MSYS.bat в директории проекта:

@C:\msys64\msys2_shell.cmd -mingw64 -where .

Здесь команда -where задает установить текущий каталог для шелла MSYS2 в значение текущего каталога Windows. Вместо точки, которая задает текущий каталог Windows, может быть указан произвольный путь.

Подсказку по командной строке msys2_shell.cmd можно получить командой msys2_shell.cmd -help.

[Ссылки]

1. MSYS2 Software Distribution and Building Platform for Windows site:msys2.org.
2. Frequently Asked Questions about MinGW/MSYS site:jmu.edu.
3. Cygwin project site:cygwin.com.
4. MSYS2 Packages site:msys2.org.
5. MSYS2-Introduction site:msys2.org.
6. MSYS2 Downloading Installation Updating packagessite:msys2.org.

 

Добавить комментарий


Защитный код
Обновить

Top of Page