利用msys2搭建开发环境-基础配置篇


概述

之前总结了一些msys2使用中遇到的问题,但是不系统,有些问题也没有深究,解决了就忘记了。最近在新的机器上配置环境的时候发现一些问题,这次干脆写一个完整的配置过程,防止以后遗忘。

本系列将分为几个连载内容发布,分别为:

  1. 利用msys2搭建开发环境-基础配置篇
  2. 利用msys2搭建开发环境-Git篇
  3. 利用msys2搭建开发环境-golang开发环境篇

安装

msys2官网下载最新版本msys2。 我的安装目录为:D:\msys64

更新镜像源

清华大学开源软件镜像站 msys2镜像使用帮助。 更换文件后执行

pacman -Sy && pacman -Su
# 或者执行:
pacman -Syu

随后根据提示关闭窗口重新打卡新的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_HOME=D:\msys64
MSYS2_PATH_TYPE=inherit
MSYSTEM=MINGW64

MSYS2三个启动方式都是从msys2_shell.cmd脚本启动的,三个启动方式在脚本内仅仅在于为变量MSYSTEM设置了不同的值,这个设置对golang使用cgo的时候比较有用。可用的值有以下选项:

MSYS2 MSYS:set MSYSTEM=MSYS
MSYS2 MinGW 32bit:set MSYSTEM=MINGW32
MSYS2 MinGW 64bit:set MSYSTEM=MINGW64
在PATH中添加
%MSYS2_HOME%\bin
%MSYS2_HOME%\usr\bin
然后打开msys2的shell窗口,在~/.bashrc文件中追加下面的配置:
export PATH=$PATH:/mingw64/bin/

修改用户目录

根据我的安装目录,msys2默认用户目录在D:\msys64\home下,但是这样有些问题,比如偶尔我们想用一下cmd时,一些命令就找不到一些msys下的用户配置.bashrc、.git-config等。这时候可以用一个巧妙的办法解决,将windows的用户目录做个链接到D:\msys64\home下即可。具体操作如下。 修改msys2创建的用户目录名字,目录名加-bak后缀,打开cmd,然后执行如下命令:

cd D:\msys64\home
mklink /J <username> C:\Users\<username>

以上命令会返回

为 <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下直接运行。

Archives