簡單的說,MSYS2 是MSYS的一個升級版, 提供了bash shell, Autotools, 版本控制軟件和MinGW-w64 工具鏈。與MSYS最大的區別是移植了 Arch Linux的軟件包管理系統 Pacman。有了 Pacman 升級系統,安裝新軟件包,還有解決軟件包間的依賴問題就變得簡單多了。
能夠在這裏查看MSYS2包括了哪些軟件包:
https://github.com/Alexpux/MSYS2-packages
安裝
msys2 的主頁地址:
http://sourceforge.net/projects/msys2/
首先下載安裝文件,個人系統是32位的,因此下載32位的安裝包:
msys2-i686-20140910.exe
msys2 要求安裝目錄只能有 ascii 字符而且不能有空格。我選擇安裝在:
C:/msys32
這樣安裝完後只有最基本的系統,沒有gcc開發環境。運行以下命令能夠打開一個bash shell:
msys2_shell.bat
剩下的工做都在這個bash shell下進行。
msys2 移植了Arch Linux 上的軟件包管理系統 Pacman,有了包管理系統,升級、安裝新的軟件就很簡單了。 不過我一直在用redhat 系的linux,沒有接觸過 Pacman,學習新命令仍是花了些時間。這裏把一些常見的Pacman命令記錄一下。
更新本地軟件包
更新本地軟件包數據庫:
pacman -S --refresh
能夠縮寫爲:pacman -Sy
而後升級軟件包:
pacman -S --refresh --sysupgrade
能夠縮寫爲:pacman -Syu
這裏須要特別注意,不能寫爲:
pacman -Su
給出的理由以下,我水平過低,沒徹底理解是啥意思:
because all MSYS2 programs share the same address space for DLLs due to how MSYS2 (well, Cygwin) implements 'fork', and because any Pacman package (both MSYS2 and MinGW-w64 ones) may use MSYS2's bash to run a post-install script, issuing this command can cause these scripts to fail to run should any updated, core MSYS2 DLLs end up in a different location to where they were. For this reason, the safest procedure for updating MSYS2 is to do it in two stages;
首先更新MSYS2核心程序包:
pacman -S --needed filesystem msys2-runtime bash libreadline libiconv libarchive libgpgme libcurl pacman ncurses libintl
若是這一步更新了一些軟件包,那麼就須要關閉 msys2 而後再從新運行以下兩個批處理文件:
autorebase.bat
msys2_shell.bat
不然更新其餘軟件包是會報錯。(看來MSYS2 仍是有點弱,但願之後可以把這個問題改好了)
以後就能夠用:
pacman -Su
更新系統的其餘軟件包了。
列出全部安裝了的軟件
pacman -Q --explicit
或者
pacman -Q -e
安裝新的軟件包
pacman -S <package_names|package_groups>
好比我要安裝 gcc。那麼執行:
pacman -S gcc
而後按照提示安裝就能夠了。
搜索軟件包
不少時候,咱們不知道要按照的軟件的準確名稱,這時就要先查詢軟件包的名稱。
pacman -Ss <name_pattern>
好比我想安裝gcc相關的軟件,那麼能夠這樣搜索
pacman -Ss gcc
pacman -Q --groups
能夠列出全部的軟件組,在我這裏執行的結果以下:
base bash
base bash-completion
base bsdcpio
base bsdtar
base bzip2
base catgets
base coreutils
base crypt
base curl
base dash
base file
base filesystem
base findutils
base flex
base gawk
base gcc-libs
base getopt
base grep
base gzip
base less
base lndir
base man-db
base mintty
base msys2-runtime
base ncurses
base pacman
base pacman-mirrors
base pkgfile
base rebase
base sed
base texinfo
base tzcode
base which
msys2-devel binutils
msys2-devel gcc
msys2-devel msys2-w32api-headers
msys2-devel msys2-w32api-runtime
compression bzip2
compression gzip
compression liblzo2
compression xz
libraries cloog
libraries gmp
libraries heimdal-libs
libraries icu
libraries isl
libraries libarchive
libraries libasprintf
libraries libbz2
libraries libcares
libraries libcatgets
libraries libcrypt
libraries libcurl
libraries libdb
libraries libexpat
libraries libffi
libraries libgdbm
libraries libgettextpo
libraries libgpg-error
libraries libgpgme
libraries libiconv
libraries libidn
libraries libintl
libraries liblzma
libraries liblzo2
libraries libmetalink
libraries libnettle
libraries libopenssl
libraries libp11-kit
libraries libpcre
libraries libpipeline
libraries libreadline
libraries libsqlite
libraries libssh2
libraries libtasn1
libraries libxml2
libraries mpc
libraries mpfr
libraries zlib
Database db
Database gdbm
base-devel file
base-devel flex
base-devel gawk
base-devel gettext
base-devel grep
base-devel groff
base-devel m4
base-devel pacman
base-devel perl
base-devel pkgfile
base-devel sed
base-devel texinfo
MSYS2-devel msys2-runtime-devel
刪除一個軟件包
pacman -R <package_names|package_groups>php
MSYS2開發環境搭建
軟件安裝
下載msys2-x86_64軟件包,雙擊安裝到某根目錄下,好比D:\msys64。
pacman是MSYS2自帶的軟件管理工具:
可經過修改msys64\etc\pacman.d下的三個文件修改軟件源,參考幫助文檔,可供選擇的有:中國科學技術開源軟件鏡像、北京理工大學鏡像、日本北陸先端科學技術大學院大學SourceForge鏡像、The UK Mirror Service Sorceforge mirror等。
下載後的軟件包默認存放目錄msys64\var\cache\pacman\pkg;若命令行下載速度較慢,能夠到到軟件源網站使用下載工具下載相應的軟件包,而後拷貝到此目錄,接着使用命令行進行安裝。
運行msys2_shell.bat: pacman -Sy 更新本地包數據
升級核心包: pacman -S --needed filesystem msys2-runtime bash libreadline libiconv libarchive libgpgme libcurl pacman ncurses libintl, 以後須要關閉全部 MSYS2 shell,而後運行 autorebase.bat
升級其餘包:pacman -Su
經常使用命令:
pacman -Q查看已安裝的軟件包
pacman -S -g查看軟件組
pacman -Q -g base-devel查看軟件組包含的軟件
pacman -Q -l vim查詢軟件包的內容
pacman -Q -s nettle查詢軟件所在的包
查看工具幫助:pacman -h ;pacman -S -h
建議經過安裝軟件組來安裝工具鏈
pacman -S mingw-w64-x86_64-toolchain
pacman -S mingw-w64-i686-toolchain
pacman -S base-devel
pacman -S vim
1
2
3
4
MSYS2應用說明
運行環境說明
msys64\etc\fstab中能夠配置文件目錄映射:好比配置C:\Users\lenovo\Desktop /desktop後,能夠在終端直接cd /desktop後能夠直接切換到C:\Users\lenovo\Desktop目錄下。
任務欄快捷鍵:msys64\usr\bin\mintty.exe拖拽到任務欄上,右擊選擇屬性,將目標改爲三種BAT腳本中的一個。
vim高亮配置:將msys64\etc\skel.vimrc拷貝到用戶目錄下。
MSYS2有三個執行腳本,分別是 msys2_shell.bat、mingw32_shell.bat 和 mingw64_shell.bat,查看內容能夠看到其中只有一行區別,便是設定 MSYSTEM 變量。這個變量在 /etc/profile 中會用到:
MSYS2_PATH="/usr/local/bin:/usr/bin:/bin"
MANPATH="/usr/local/man:/usr/share/man:/usr/man:/share/man:${MANPATH}"
INFOPATH="/usr/local/info:/usr/share/info:/usr/info:/share/info:${INFOPATH}"
MINGW_MOUNT_POINT=
if [ -n "$MSYSTEM" ]
then
case "$MSYSTEM" in
MINGW32)
MINGW_MOUNT_POINT=/mingw32
PATH="${MINGW_MOUNT_POINT}/bin:${MSYS2_PATH}:${PATH}"
PKG_CONFIG_PATH="${MINGW_MOUNT_POINT}/lib/pkgconfig:${MINGW_MOUNT_POINT}/share/pkgconfig"
ACLOCAL_PATH="${MINGW_MOUNT_POINT}/share/aclocal:/usr/share/aclocal"
MANPATH="${MINGW_MOUNT_POINT}/share/man:${MANPATH}"
;;
MINGW64)
MINGW_MOUNT_POINT=/mingw64
PATH="${MINGW_MOUNT_POINT}/bin:${MSYS2_PATH}:${PATH}"
PKG_CONFIG_PATH="${MINGW_MOUNT_POINT}/lib/pkgconfig:${MINGW_MOUNT_POINT}/share/pkgconfig"
ACLOCAL_PATH="${MINGW_MOUNT_POINT}/share/aclocal:/usr/share/aclocal"
MANPATH="${MINGW_MOUNT_POINT}/share/man:${MANPATH}"
;;
MSYS)
PATH="${MSYS2_PATH}:/opt/bin:${PATH}"
PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/share/pkgconfig:/lib/pkgconfig"
;;
*)
PATH="${MSYS2_PATH}:${PATH}"
;;
esac
else
PATH="${MSYS2_PATH}:${PATH}"
Fi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
可見,三個 .bat 的區別就是 PATH 的設置,mingw32_shell.bat 優先使用 msys64/mingw32 下的工具,mingw64_shell.bat 優先使用 msys64/mingw64 下的工具,而 msys2_shell.bat 兩個都不使用,只用自身 msys 的工具。這麼作的好處是當須要編譯 32bit Target 的項目時使用 mingw32_shell.bat,64 bit 使用 mingw64_shell.bat,各套工具互不干擾。
添加右鍵快捷方式 <2018-10-29 win10>
msys2.reg
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\Mingw64]
@="MinGW &64 Bash Here"
"Icon"="D:\\msys64\\msys2.ico"
[HKEY_CLASSES_ROOT\Directory\Background\shell\Mingw64\command]
@="D:\\msys64\\msys2_shell.cmd -mingw64 -here"
1
2
3
4
5
6
7
8
製做軟件包makepkg
MSYS2官網的軟件包是經過makepkg或makepkg-mingw製做的。
可參
MINGW_INSTALLS=mingw64 makepkg -sLf --skippgpcheck
http://sourceforge.net/p/msys2/wiki/Contributing to MSYS2/,
C:\msys64\usr\share\pacman\PKGBUILD.proto
經常使用軟件包編譯
經常使用軟件包咱們能夠簡單的使用命令直接從官網安裝便可,好比安裝openssl:
32bit:pacman -S mingw-w64-i686-openssl
64bit: pacman -S mingw-w64-x86_64-openssl
有時候根據項目須要咱們不得不本身動手編譯依賴的軟件包,如下是我在工做用到的庫編譯過程記錄。
openssl
64bit
mkdir openssl64
cd openssl64
tar zxvf openssl-1.0.2c.tar.gz
cd openssl-1.0.2c
./configure mingw64 shared
make
make INSTALL_PREFIX=../ install
1
2
3
4
5
6
7
32bit
mkdir openssl32
cd openssl32
tar zxvf openssl-1.0.2c.tar.gz
cd openssl-1.0.2c
./configure mingw shared
make
make INSTALL_PREFIX=../ install
1
2
3
4
5
6
7
zlib
32bit
mkdir zlib32
cd zlib32
tar zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8/
make -f ./win32/Makefile.gcc
make
make install -f win32/Makefile.gcc DESTDIR=../
1
2
3
4
5
6
7
參考
MSYS2的源配置
MSYS2 + MinGW-w64 + Git + gVim 環境配置
擴展閱讀
利用MSYS2安裝MinGW+Qt開發環境
GCC online documentation
---------------------
做者:callinglove
來源:CSDN
原文:https://blog.csdn.net/callinglove/article/details/48601775
版權聲明:本文爲博主原創文章,轉載請附上博文連接!html
先裝 MSYS2 的好處是以後能夠將 $HOME 設爲 /home/name/,再裝其餘 *nix 系工具時配置文件都會放在 MSYS2 的 /home/name 下,方便管理。java
1. 到 http://sourceforge.net/projects/msys2/ 下載安裝。python
安裝位置設爲 D:/develop/msys64linux
添加環境變量 HOME 爲 D:\develop\msys64\home\name,這個變量很是有用,後面配置要屢次用到。git
2. 運行 msys2_shell.batgithub
pacman -Sy
更新本地包數據sql
3. 升級核心包shell
pacman -S --needed filesystem msys2-runtime bash libreadline libiconv libarchive libgpgme libcurl pacman ncurses libintl
以後須要關閉全部 MSYS2 shell,而後運行 autorebase.bat數據庫
4. 升級其餘包
pacman -Su
能夠看到 MSYS2 有三個執行腳本,分別是 msys2_shell.bat、mingw32_shell.bat 和 mingw64_shell.bat,查看內容能夠看到其中只有一行區別,便是設定 MSYSTEM 變量。這個變量在 /etc/profile 中會用到:
if [ -n "$MSYSTEM" ] then case "$MSYSTEM" in MINGW32) PATH="/mingw32/bin:${MSYS2_PATH}:${PATH}" PKG_CONFIG_PATH="/mingw32/lib/pkgconfig" MANPATH="/mingw32/share/man:${MANPATH}" TERMINFO=/mingw32/share/terminfo:${TERMINFO} ;; MINGW64) PATH="/mingw64/bin:${MSYS2_PATH}:${PATH}" PKG_CONFIG_PATH="/mingw64/lib/pkgconfig" MANPATH="/mingw64/share/man:${MANPATH}" TERMINFO=/mingw64/share/terminfo:${TERMINFO} ;; MSYS) PATH="${MSYS2_PATH}:/opt/bin:${PATH}" PKG_CONFIG_PATH="/usr/lib/pkgconfig:/lib/pkgconfig" TERMINFO=/usr/share/terminfo ;; *) PATH="${MSYS2_PATH}:${PATH}" ;; esac else PATH="${MSYS2_PATH}:${PATH}" fi
可見,三個 .bat 的區別就是 PATH 的設置,mingw32_shell.bat 優先使用 msys64/mingw32 下的工具,mingw64_shell.bat 優先使用 msys64/mingw64 下的工具,而 msys2_shell.bat 兩個都不使用,只用自身 msys 的工具。這麼作的好處是當須要編譯 32bit Target 的項目時使用 mingw32_shell.bat,64 bit 使用 mingw64_shell.bat,各套工具互不干擾。
隨便哪一個 shell.bat 下均可以
1. 查看可用的安裝包
pacman -Sl | grep gcc
能夠看到如下三個
mingw32 mingw-w64-i686-gcc 4.9.1-3 mingw64 mingw-64-x86_64-gcc 4.9.1-3 msys gcc 4.8.2-2
分別對應於 msys 的三個 .bat 環境。這裏先裝第一個,其餘相似。
2. 安裝
pacman -S mingw-w64-i686-gcc
MSYS2 會自動將這個包裝在 msys64/mingw32 下,從以前的分析可知只有 mingw32_shell.bat 會用到這個目錄下的程序。
3. 運行
打開 mingw32_shell.bat 來試一下:
gcc --version
gcc.exe (Rev3, Built by MSYS2 project) 4.9.1 Copyright (C) 2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
1. 下載 Git for Windows。安裝過程選擇 Git cheetah plug-in 和 Run Git from Windows Command Prompt,這樣 Vim 的 Vundle 插件能夠調用 git。
因爲安裝 MSYS2 時已設置了 HOME 環境變量,Git 會自動將配置文件放在 HOME 下,未來在 MSYS2 中使用時共用一套配置,方便。
安裝 MSYS2 的 git:
pacman -S git
2. 設置 autocrlf 爲 input。
git config --global core.autocrlf input
因爲設置了 HOME 環境變量,可使 gvim 和 MSYS2 的 vim 共用一套配置文件:~/.vimrc,插件也能夠統一放在 ~/.vim/ 下。在使用 Vundle 時,git clone 出的代碼是 unix 換行符能夠避免 MSYS2 vim 讀取 Vundle 插件文件時出錯。
3. KDiff3 用做 diff 和 merge 工具很方便,也一併裝了吧。裝好後配置 Git:
git config --global merge.tool kdiff3
git config --global mergetool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
中間有空格也能正確處理。能夠試一下 git mergetool 和 git difftool 看看是否配置正確了。爲避免每次用 git difftool 時都提示確認,下面兩行也能夠設一下:
git config --global mergetool.prompt false git config --global difftool.prompt false
1. 安裝 gVim 到 D:\develop\Vim,組件選擇 full
2. 因爲設置了 HOME 環境變量,就能夠將 gvim 的配置統一放在 HOME 目錄下
將 Vim/vimfiles 下的全部文件夾刪除,在 ~/.vim 下新建 bundle 文件夾
3. 參考 Vundle.vim 的教程設置好 Git 的 Curl 腳本:
https://github.com/gmarik/Vundle.vim/wiki/Vundle-for-Windows
4. 將 gmarik/Vundle.vim git clone 到 ~/.vim/bundle 下:
cd ~/.vim/bundle
git clone https://github.com/gmarik/Vundle.vim.git
5. 繼續參考 Vundle.vim 的教程修改 ~/.vimrc 文件,將內容添加到開頭處。雖然是在 Windows 環境下使用 gvim,但因爲設置了 HOME 環境變量,如下設置按 Lunix 配置更方便:
set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin()
之後插件會自動安裝在 $HOME/.vim/bundle 目錄下。
6. 修改 .vimrc 添加要安裝的插件包,而後在 gVim 中運行
:PluginInstall
7. 如今可使用 :h vundle 來查看 Vundle 的幫助了。
1. 將 gVim 目錄加入 Path 環境變量,設置 Git 使用 gvim 做爲默認 editor:
git config --global core.editor gvim
2. 要將經常使用工做目錄映射到 MSYS2 的 ~ 下,可用 mount 命令(加入 .bash_profile 中):
mount -fo binary,noacl,posix=0,user D:/docs ~/docs
這樣打開 MSYS2 shell 後直接 cd docs 便可進入經常使用工做目錄。
3. 其餘工具的安裝相似,查看 pacman 手冊便可。經常使用的:
列出可用的包
pacman -Sl
安裝
pacman -S package-name
刪除
pacman -R package-name
4. 將配置同步到 github 上!
a. 新建 repository UserConfig,添加 .gitignore 文件,內容爲 *,默認忽略全部文件。
b. git clone 到本地
git clone https://github.com/tadvent/UserConfig.git
c. 將其中的 .git 目錄和 .gitignore README.md 文件移動到 ~/ 下。
d. 新建 msys2 分支並添加要同步的文件,over~
git checkout -b msys2
git add -f .bash_profile .bashrc .gitconfig .vimrc
git commit git push origin master msys2
msys2安裝g++: pacman -S mingw-w64-x86_64-toolchain mingw-w64-i686-toolchain
因爲GFW做怪,訪問SF的源並不穩定,筆者推薦使用北京理工大學的鏡像:
http://mirror.bit.edu.cn/msys2/REPOS/
修改msys2安裝目錄下的\etc\pacman.d文件夾裏面的3個mirrorlist.*文件,依樣畫葫蘆把鏡像添加再更新便可
http://www.rswiki.org/%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1/msys2?rev=1416044574
複製代碼
## ## MSYS2 repository mirrorlist ## Changed on 2014-11-15 ## ##中國科學技術大學開源軟件鏡像 Server = http://mirrors.ustc.edu.cn/msys2/REPOS/MSYS2/$arch ##北京理工大學鏡像 Server = http://mirror.bit.edu.cn/msys2/REPOS/MSYS2/$arch ##日本北陸先端科學技術大學院大學 sourceforge 鏡像 Server = http://jaist.dl.sourceforge.net/project/msys2/REPOS/MSYS2/$arch ##The UK Mirror Service Sourceforge mirror Server = http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/m/ms/msys2/REPOS/MSYS2/$arch ## Primary Server = ftp://148.251.42.38/MSYS2/$arch ## Sourceforge.net Server = http://downloads.sourceforge.net/project/msys2/REPOS/MSYS2/$arch
## ## 64-bit Mingw-w64 repository mirrorlist ## Changed on 2014-11-15 ## ##中國科學技術大學開源軟件鏡像 Server = http://mirrors.ustc.edu.cn/msys2/REPOS/MINGW/x86_64 ##北京理工大學鏡像 Server = http://mirror.bit.edu.cn/msys2/REPOS/MINGW/x86_64 ##日本北陸先端科學技術大學院大學 sourceforge 鏡像 Server = http://jaist.dl.sourceforge.net/project/msys2/REPOS/MINGW/x86_64 ##The UK Mirror Service Sourceforge mirror Server = http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/m/ms/msys2/REPOS/MINGW/x86_64 ## Primary Server = ftp://148.251.42.38/MINGW/x86_64 ## Sourceforge.net Server = http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/x86_64
## ## 32-bit Mingw-w64 repository mirrorlist ## Changed on 2014-11-15 ## ##中國科學技術大學開源軟件鏡像 Server = http://mirrors.ustc.edu.cn/msys2/REPOS/MINGW/i686 ##北京理工大學鏡像 Server = http://mirror.bit.edu.cn/msys2/REPOS/MINGW/i686 ##日本北陸先端科學技術大學院大學 sourceforge 鏡像 Server = http://jaist.dl.sourceforge.net/project/msys2/REPOS/MINGW/i686 ##The UK Mirror Service Sourceforge mirror Server = http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/m/ms/msys2/REPOS/MINGW/i686 ## Primary Server = ftp://148.251.42.38/MINGW/i686 ## Sourceforge.net Server = http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/i686
MSYS2自己是用cygwin驅動的但它直接使用MINGW64來開發,因此編譯出的程序是原生windows程序。咱們能夠直接從source force上下到
msys2:
http://sourceforge.net/projects/msys2/
mingw64:
http://sourceforge.net/projects/mingw-w64/
下載後,吧它們安裝到同一個文件夾下(好比C:\MSYS2)就能夠工做了,注意安裝mingw64時平臺要選x86_64而不i686,這樣你才能獲得64位程序的編譯能力,但這同時也意味着你的庫是64位的,因此想要要同時開發32位和64位程序的話,就須要裝兩次了,一次選x86_64,一次選i686。
MSYS2中引入了Arch Linux中的pacman包管理器,解決了咱們安裝軟件時使人頭疼的庫依賴問題,在MSYS2的安裝目錄中找到批處理文件mingw64_shell.bat,就能夠進入msys2環境了,你能夠把\usr\bin和\mingw64\bin這兩個目錄加到path中去,這樣你在windows本身的命令行中也可使用這些工具了。
首先咱們輸入命令pacman -Syu對系統進行全面更新,若是之後你裝了一些新的包,這個命令也會幫你把你裝的包一塊兒更新。若是嫌國外的服務器網速太慢能夠把中科大的鏡像添加到pacman的mirrorlist文件中,具體方法參見https://lug.ustc.edu.cn/wiki/mirrors/help/msys2。不過這個鏡像的文件可能有些不全,但我感受source force的速度仍是能夠的,因此當中科大鏡像沒文件,它本身的ftp連不上,最後就會連上source force。
你能夠輸入pacman -Sl查看能夠安裝的包,用pacman -Ss來模糊搜索,pacman -Q來列出已經安裝的包,各類命令均可以用pacman -h得到幫助:
$ pacman -h
用法: pacman <操做> […]
操做:
pacman {-h –help}
pacman {-V –version}
pacman {-D –database} <選項> <軟件包>
pacman {-Q –query} [選項] [軟件包]
pacman {-R –remove} [選項] <軟件包>
pacman {-S –sync} [選項] [軟件包]
pacman {-T –deptest} [選項] [軟件包]
pacman {-U –upgrade} [選項] <文件>
使用 ‘pacman {-h –help}’ 及某個操做以查看可用選項
若是要安裝包,用pacman -S 包名便可,全部的包名在pacman -Sl中會顯示出來,我的建議安裝的幾個包是:git,man,make,mingw-w64-x86_64-boost,mingw-w64-x86_64-gsl。注意工具能夠裝msys的但庫或者腳本語言請務必裝mingw-w64-x86_64的,由於這不但更全並且執行效率也好得多。
若是裝包遇到文件衝突(應爲咱們事先裝好的mingw64,pacman是不知道的),能夠用–force選項來強制安裝。這裏不建議用pacman直接裝mingw-w64-x86_64-gcc由於工具組不全會在windows下沒法運行,並且它還會裝上一個Python2,這對咱們這些Python3黨來講是很很差受的一件事。
固然你能夠直接安裝mingw-w64-x86_64-python3包,不過我仍是更習慣直接用python官方的windows版吧,不過這裏有個好處就是它能夠幫你裝上最新的scipy而不須要到Scipy的官網上慢速地拖安裝包。輸入pacman -S mingw-w64-x86_64-python3-scipy就能夠了,同時它幫你也解決了numpy的依賴問題。
若是須要更新包用pacman -Sy,這個命令一樣能夠用直接裝包。
因爲Qt官方沒有提供Mingw64的版本,它只有VC和mingw32的版本,因此裝mingw64的qt目前用msys2是最簡單的方法,你輸入pacman -S mingw-w64-x86_64-qt5就能夠了。而後到Qt官網去下載一個Qtcreator,本身配置一下編譯系統,在菜單欄的工具-選項-構建和運行以及版本控制中去設置就行了。須要填入的文件包括qmake,g++,gdb,git,它們在\mingw64\bin和\usr\bin這兩個文件夾中能夠找到。
最後講一下在任務欄建立一個快捷方式的方法,你能夠直接在\usr\bin中找到mintty.exe它是一個功能更好的windows下的終端,把它拖到任務欄固定好,注意默認的字體過小,在option-text中調整一下,建議使用consolas 16號字體。而後右鍵點擊任務欄快捷方式再右鍵Terminal,左鍵屬性,把目標改爲:
(……\usr\bin\mintty.exe 這塊不要動直接加後面的參數)-i /msys2.ico env MSYSTEM=MINGW64 bash -l -i
而後你就能夠在任務欄直接快速啓動msys2終端了。
下載msys2-x86_64軟件包,雙擊安裝到某根目錄下,好比D:\msys64。
pacman是MSYS2自帶的軟件管理工具:
pacman -Sy
更新本地包數據pacman -S --needed filesystem msys2-runtime bash libreadline libiconv libarchive libgpgme libcurl pacman ncurses libintl
, 以後須要關閉全部 MSYS2 shell,而後運行 autorebase.batpacman -Su
pacman -Q
查看已安裝的軟件包pacman -S -g
查看軟件組pacman -Q -g base-devel
查看軟件組包含的軟件pacman -Q -l vim
查詢軟件包的內容pacman -Q -s nettle
查詢軟件所在的包pacman -h
;pacman -S -h
建議經過安裝軟件組來安裝工具鏈
pacman -S mingw-w64-x86_64-toolchain pacman -S mingw-w64-i686-toolchain pacman -S base-devel pacman -S vimmsys64\etc\fstab中能夠配置文件目錄映射:好比配置C:\Users\lenovo\Desktop /desktop
後,能夠在終端直接cd /desktop
後能夠直接切換到C:\Users\lenovo\Desktop目錄下。
任務欄快捷鍵:msys64\usr\bin\mintty.exe拖拽到任務欄上,右擊選擇屬性,將目標改爲三種BAT腳本中的一個。
vim高亮配置:將msys64\etc\skel.vimrc拷貝到用戶目錄下。
MSYS2有三個執行腳本,分別是 msys2_shell.bat、mingw32_shell.bat 和 mingw64_shell.bat,查看內容能夠看到其中只有一行區別,便是設定 MSYSTEM 變量。這個變量在 /etc/profile 中會用到:
MSYS2_PATH="/usr/local/bin:/usr/bin:/bin" MANPATH="/usr/local/man:/usr/share/man:/usr/man:/share/man:${MANPATH}" INFOPATH="/usr/local/info:/usr/share/info:/usr/info:/share/info:${INFOPATH}" MINGW_MOUNT_POINT= if [ -n "$MSYSTEM" ] then case "$MSYSTEM" in MINGW32) MINGW_MOUNT_POINT=/mingw32 PATH="${MINGW_MOUNT_POINT}/bin:${MSYS2_PATH}:${PATH}" PKG_CONFIG_PATH="${MINGW_MOUNT_POINT}/lib/pkgconfig:${MINGW_MOUNT_POINT}/share/pkgconfig" ACLOCAL_PATH="${MINGW_MOUNT_POINT}/share/aclocal:/usr/share/aclocal" MANPATH="${MINGW_MOUNT_POINT}/share/man:${MANPATH}" ;; MINGW64) MINGW_MOUNT_POINT=/mingw64 PATH="${MINGW_MOUNT_POINT}/bin:${MSYS2_PATH}:${PATH}" PKG_CONFIG_PATH="${MINGW_MOUNT_POINT}/lib/pkgconfig:${MINGW_MOUNT_POINT}/share/pkgconfig" ACLOCAL_PATH="${MINGW_MOUNT_POINT}/share/aclocal:/usr/share/aclocal" MANPATH="${MINGW_MOUNT_POINT}/share/man:${MANPATH}" ;; MSYS) PATH="${MSYS2_PATH}:/opt/bin:${PATH}" PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/share/pkgconfig:/lib/pkgconfig" ;; *) PATH="${MSYS2_PATH}:${PATH}" ;; esac else PATH="${MSYS2_PATH}:${PATH}" Fi可見,三個 .bat 的區別就是 PATH 的設置,mingw32_shell.bat 優先使用 msys64/mingw32 下的工具,mingw64_shell.bat 優先使用msys64/mingw64 下的工具,而 msys2_shell.bat 兩個都不使用,只用自身 msys 的工具。這麼作的好處是當須要編譯 32bit Target 的項目時使用 mingw32_shell.bat,64 bit 使用 mingw64_shell.bat,各套工具互不干擾。
MSYS2官網的軟件包是經過makepkg或makepkg-mingw製做的。
可參
MINGW_INSTALLS=mingw64 makepkg -sLf --skippgpcheck
經常使用軟件包咱們能夠簡單的使用命令直接從官網安裝便可,好比安裝openssl:
pacman -S mingw-w64-i686-openssl
pacman -S mingw-w64-x86_64-openssl
有時候根據項目須要咱們不得不本身動手編譯依賴的軟件包,如下是我在工做用到的庫編譯過程記錄。
64bit
mkdir openssl64 cd openssl64 tar zxvf openssl-1.0.2c.tar.gz cd openssl-1.0.2c ./configure mingw64 shared make make INSTALL_PREFIX=../ installmkdir openssl32cd openssl32 tar zxvf openssl-tar zxvf openssl-1.0.2c.tar.gzcd openssl-1.0.2c ./configure mingw shared make make INSTALL_PREFIX=../ install./configure mingw sharedmakemake INSTALL_PREFIX=../ install
mkdir zlib32
cd zlib32
tar zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8/
make -f ./win32/Makefile.gcc
make
make install -f win32/Makefile.gcc DESTDIR=../
http://www.360doc.com/content/16/0514/16/496343_559090195.shtml