概述
之前总结了一些msys2使用中遇到的问题,但是不系统,有些问题也没有深究,解决了就忘记了。最近在新的机器上配置环境的时候发现一些问题,这次干脆写一个完整的配置过程,防止以后遗忘。
本系列将分为几个连载内容发布,分别为:
安装
去msys2官网下载最新版本msys2。 我的安装目录为:D:\msys64
更新镜像源
清华大学开源软件镜像站 msys2镜像使用帮助。 更换文件后执行
随后根据提示关闭窗口重新打卡新的bash窗口。
安装gcc环境
pacman -S make mingw-w64-x86_64-cmake \ mingw-w64-x86_64-extra-cmake-modules \ mingw-w64-x86_64-make \ mingw-w64-x86_64-gdb \ mingw-w64-x86_64-toolchain
环境变量
在安装后一定要设置以下环境变量。
MSYS2三个启动方式都是从msys2_shell.cmd脚本启动的,三个启动方式在脚本内仅仅在于为变量MSYSTEM设置了不同的值,这个设置对golang使用cgo的时候比较有用。可用的值有以下选项:
MSYS2 MSYS:set MSYSTEM=MSYS
MSYS2 MinGW 32bit:set MSYSTEM=MINGW32
MSYS2 MinGW 64bit:set MSYSTEM=MINGW64
%MSYS2_HOME%\bin %MSYS2_HOME%\usr\bin
export PATH=$PATH:/mingw64/bin/
修改用户目录
根据我的安装目录,msys2默认用户目录在D:\msys64\home下,但是这样有些问题,比如偶尔我们想用一下cmd时,一些命令就找不到一些msys下的用户配置.bashrc、.git-config等。这时候可以用一个巧妙的办法解决,将windows的用户目录做个链接到D:\msys64\home下即可。具体操作如下。 修改msys2创建的用户目录名字,目录名加-bak后缀,打开cmd,然后执行如下命令:
以上命令会返回
为 <username> <<===>> C:\Users\<username> 创建的联接
上面命令中的“<username>”请替换成实际的系统用户目录。执行完命令之后,将原来msys2的用户目录下的文件拷贝到C:盘的用户目录(C:\Users\<username>)下即可。
mklink命令参数说明如下:
MKLINK [[/D] | [/H] | [/J]] Link Target /D 创建目录符号链接。默认为文件 符号链接。 /H 创建硬链接而非符号链接。 /J 创建目录联接。 Link 指定新的符号链接名称。 Target 指定新链接引用的路径 (相对或绝对)。
安装Conemu
ConEmu是适用于Windows的免费开源选项卡式终端仿真器。ConEmu提供了多个控制台和简单的GUI应用程序,作为一个带有选项卡和状态栏的可自定义的GUI窗口。真香! 官方网址
conemu的基本配置
设置为默认终端
点击"集成"的“注册”和“反注册”可以添加右键菜单和取消设置。
添加到右键菜单
如果没有安装conemu可以用下面的方法添加到右键菜单。
新建文本文档命名为add-msys.reg,文件内容填写如下内容:
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\shell\msys2] @="MSYS2" "Icon"="D:\\msys64\\msys2.ico" [HKEY_CLASSES_ROOT\Directory\shell\msys2\command] @="D:\\msys64\\msys2_shell.cmd -here" [HKEY_CLASSES_ROOT\Directory\Background\shell\msys2] @="MSYS2" "Icon"="D:\\msys64\\msys2.ico" [HKEY_CLASSES_ROOT\Directory\Background\shell\msys2\command] @="D:\\msys64\\msys2_shell.cmd -here" [HKEY_CLASSES_ROOT\Drive\shell\msys2] @="MSYS2" "Icon"="D:\\msys64\\msys2.ico" [HKEY_CLASSES_ROOT\Drive\shell\msys2\command] @="D:\\msys64\\msys2_shell.cmd -here" [HKEY_CLASSES_ROOT\LibraryFolder\background\shell\msys2] @="MSYS2" "Icon"="D:\\msys64\\msys2.ico" [HKEY_CLASSES_ROOT\LibraryFolder\background\shell\msys2\command] @="D:\\msys64\\msys2_shell.cmd -here"
注意: 调整安装目录为实际路径。
Jetbrains配置
Jetbrains家族的IDE像IDEA,PHPStorm,PyCharm,Goland都可以自定终端配置。设置路径settings > Tools > Terminal
,修改"Application Settings"下面的"Shell path"的值为
"D:\msys64\usr\bin\env.exe" CHERE_INVOKING=1 /usr/bin/bash --login -i
pacman的基本用法
安装软件
- pacman -S 软件名: 安装软件。也可以同时安装多个包,只需以空格分隔包名即可。
- pacman -S --needed 软件名1 软件名2: 安装软件,但不重新安装已经是最新的软件。
- pacman -Sy 软件名:安装软件前,先从远程仓库下载软件包数据库(数据库即所有软件列表)。
- pacman -Sv 软件名:在显示一些操作信息后执行安装。
- pacman -Sw 软件名: 只下载软件包,不安装。
- pacman -U 软件名.pkg.tar.gz:安装本地软件包。
- pacman -U http://www.example.com/repo/example.pkg.tar.xz: 安装一个远程包(不在 pacman 配置的源里面)。
更新系统
- pacman -Sy 从服务器下载新的软件包数据库(实际上就是下载远程仓库最新软件列表到本地)。
- pacman -Su 升级所有已安装的软件包。
- pacman -Syu pacman 可以用一个命令就可以升级整个系统
卸载软件
- pacman -R <软件名> 该命令将只删除包,保留其全部已经安装的依赖关系
- pacman -Rv <软件名> 删除软件,并显示详细的信息
- pacman -Rs <软件名> 删除软件,同时删除本机上只有该软件依赖的软件。
- pacman -Rsc <软件名> 删除软件,并删除所有依赖这个软件的程序,慎用
- pacman -Ru <软件名> 删除软件,同时删除不再被任何软件所需要的依赖
总结
这样基本的配置就完成了。有了msys2之后,windows下操作就很方便了。很多linux下的好用的工具都可以使用。而且shell脚本也可以在windows下直接运行。