文章目录
- 为什么用这个msys2
- 下载、doc
- 安装,很简单
- 初次运行,做些配置
- 更新
- 软件安装与卸载方法
- 安装必要的软件包
- 设置win环境变量
- 在windows terminal中使用
- 在vscode中使用
为什么用这个msys2
- 方便windows上的C++开发demo,不需要VS了
- 方便C++开发安装opencv等三方库
- 有了这个就不需要另外安装git, cmake, mingw64了,都可以通过pacman包管理工具一键安装
下载、doc
官网 https://www.msys2.org/
官方文档 https://www.msys2.org/docs/terminals/
github https://github.com/msys2/msys2-installer/releases/
- 根据github readme中的说明,也许自解压包是个更好的选择(更加干净)
这个msys2更新还挺活跃的,最新是2023.5.26版本, 软件本体只有84M,nice
安装,很简单
双击安装。安装过程基本上就是在解压,安装过程信息如下:到最后Updating trust database…的时候可能会卡住,此时进度50%,等着,或者尝试翻墙
正在准备安装…正在准备解压组件......正在解压组件......
正在提取“20230526msys64.7z”
已完成正在安装组件 MSYS2
Copying skeleton files.
These files are for the users to personalise their msys2 experience.They will never be overwritten nor automatically updated.'./.bashrc' -> '/home/username2/.bashrc'
'./.bash_logout' -> '/home/username2/.bash_logout'
'./.bash_profile' -> '/home/username2/.bash_profile''./.profile' -> '/home/username2/.profile''C:\windows\system32\drivers\etc\hosts' -> '/etc/hosts''C:\windows\system32\drivers\etc\protocol' -> '/etc/protocols''C:\windows\system32\drivers\etc\services' -> '/etc/services''C:\windows\system32\drivers\etc\networks' -> '/etc/networks'==> Generating pacman master key. This may take some time.==> Updating trust database...==> Appending keys from msys2.gpg...==> Locally signing trusted keys in keyring...-> Locally signed 5 keys.
==> Importing owner trust values...
==> Disabling revoked keys in keyring...-> Disabled 4 keys.
==> Updating trust database...[H[2J[3J
已完成
编写维护工具。安装已完成!
初次运行,做些配置
安装之后有好几个终端环境,推荐使用的、默认打开的是ucrt64.exe
,我这里也用这个,任务栏是这样的:
配置如下(这里刚开始,用Notepad++等编辑器编辑就行):
- 修改home目录为C:/Users/username这个win目录
- 配置文件
/etc/nsswitch.conf
- 修改:
db_home: windows cygwin desc
- 修改后最好把安装位置/home/user/下的配置文件靠背到win home下,比如.bashrc啥的
- 修改后重新打开终端生效,可pwd查看路径
- 配置文件
- 更换为国内源
- 配置文件
/etc/pacman.d/
下的 - 修改:
db_home: windows cygwin desc
各个mirrorlist文件,没必要都修改,修改你需要用的环境即可。比如我用ucrt64则只需修改:mirrorlist.msys
,mirrorlist.ucrt64
- 如何修改:把下面的国内源挪到上面,修改后应该是直接生效的
- 配置文件
- 关闭不需要的软件源搜索结果:
-
配置文件
/etc/pacman.conf
-
修改:翻到最下面,把不需要的环境注释掉:
# [clangarm64] # Include = /etc/pacman.d/mirrorlist.mingw # # [mingw32] # Include = /etc/pacman.d/mirrorlist.mingw # # [mingw64] # Include = /etc/pacman.d/mirrorlist.mingw[ucrt64] Include = /etc/pacman.d/mirrorlist.mingw# [clang32] # Include = /etc/pacman.d/mirrorlist.mingw # # [clang64] # Include = /etc/pacman.d/mirrorlist.mingw[msys] Include = /etc/pacman.d/mirrorlist.msys
-
更新
pacman -Syyu
,因为已经换源了,速度会挺快
会自动刚更新msys软件本体,和安装过的软件包。如果不想更新某个软件包,可以在配置文件设置。
- 包管理工具是pacman, 也就是arch linux和manjaro linux的包管理工具,所以有问题搜索的时候可以参考这两个发行版的解决方案
软件安装与卸载方法
- 一般的安装命令:
pacman -S 软件包名
进行安装 - 卸载命令:
pacman -Rs 软件包名
- 如何知道完整包名:
pacman -Ss 包名关键词
,比如vimpacman -Ss vim
下图就搜索到了两个,前面粉红色的是环境tag,优先安装ucrt64的(尤其是g++,cmake啥的编译工具链最好用ucrt64),但我不想用neovim就选下面的msys那个vim了,红线就是完整包名,安装即可pacman -S vim
安装必要的软件包
-
安装编译工具链:
pacman -S mingw-w64-ucrt-x86_64-toolchain
- 这里面包含很多东西,gcc, g++, make等都有了
- 修改mingw32-make.exe文件名为make.exe
cd /ucrt64/bin
ln -s mingw32-make.exe make.exe
-
安装cmake:
pacman -S mingw-w64-ucrt-x86_64-cmake
-
安装git:
pacman -S git
-
安装其他需要的软件
设置win环境变量
- 上面安装的东西,可执行文件一般在
/ucrt64/bin
,/usr/bin/
下,把这两个加到系统PATH即可(注意顺序),这样你在非msys2终端环境中也能使用这里安装的软件了,比如rm, vim啥的 - 在msys2的终端环境中默认无法使用win环境变量的PATH, 有两种方式可以使用:
- 方法1:在win环境变量中添加一个新变量
MSYS2_PATH_TYPE
,值为inherit
- 方法2:通过安装位置的
msys2_shell.cmd
启动,并添加-full-path
参数
- 方法1:在win环境变量中添加一个新变量
在windows terminal中使用
官方doc https://www.msys2.org/docs/terminals/
修改windows terminal的配置json, 注意修改路径为你的安装位置
// This makes UCRT64 the default shell
"defaultProfile": "{17da3cac-b318-431e-8a3e-7fcdefe6d114}",
"profiles": {"list":[// ...{"guid": "{17da3cac-b318-431e-8a3e-7fcdefe6d114}","name": "UCRT64 / MSYS2","commandline": "C:/msys64/msys2_shell.cmd -defterm -here -no-start -ucrt64","startingDirectory": "C:/msys64/home/%USERNAME%","icon": "C:/msys64/ucrt64.ico","font": {"face": "Lucida Console","size": 9}},{"guid": "{71160544-14d8-4194-af25-d05feeac7233}","name": "MSYS / MSYS2","commandline": "C:/msys64/msys2_shell.cmd -defterm -here -no-start -msys","startingDirectory": "C:/msys64/home/%USERNAME%","icon": "C:/msys64/msys2.ico","font": {"face": "Lucida Console","size": 9}},// ...]
}
在vscode中使用
官方文档 https://www.msys2.org/docs/ides-editors/
如下内容添加到vscode的settings.json, 注意修改路径为你的安装位置
{"terminal.integrated.profiles.windows": {"MSYS2 UCRT": {"path": "cmd.exe","args": ["/c","C:\\msys64\\msys2_shell.cmd -defterm -here -no-start -ucrt64"]}}
}