当前位置: 首页 > 工具软件 > MSys > 使用案例 >

MSYS2 使用

庾奇思
2023-12-01

1. MSYS2 使用

MSYS2 官网: https://www.msys2.org/

1. 配置

1.1. 镜像

1.1.1. 使用中科大的镜像

编辑 /etc/pacman.d/mirrorlist.mingw32, 在文件开头添加:

Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686

编辑 /etc/pacman.d/mirrorlist.mingw64, 在文件开头添加:

Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64

编辑 /etc/pacman.d/mirrorlist.msys, 在文件开头添加:

Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch

然后执行 pacman -Sy 更新本地包数据即可。

1.2. 开启颜色

pacman 的显示输出默认是黑白的, 东西一多难免有点乱。所以建议开启颜色。在 pacman.conf 中去掉 color 的注释即可

vim /etc/pacman.conf

1.3. 文件目录映射

msys64\etc\fstab

比如配置 C:\Users\lenovo\Desktop /desktop 后, 可以在终端直接 cd /desktop 后可以直接切换到 C:\Users\lenovo\Desktop 目录下。

1.4. 环境变量

MSYS2 有三个执行脚本, 分别是 msys2_shell.batmingw32_shell.batmingw64_shell.bat, 查看内容可以看到其中只有一行区别, 即是设定 MSYSTEM 变量。这个变量在 /etc/profile 中会用到:

可见, 三个 .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, 各套工具互不干扰。

1.4.1. vim 高亮配置

msys64\etc\skel.vimrc 拷贝到用户目录下。

1.4.2. 任务栏快捷键

msys64\usr\bin\mintty.exe 拖拽到任务栏上, 右击选择属性, 将目标改成三种 BAT 脚本中的一个。

1.4.3. 添加右键快捷方式 (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"

2. zshoh my zsh

zsh 的提示很爽的, 所以推荐用 zsh 把默认的 bash 换掉。oh my zsh 是简化 zsh 配置的工具。首先通过 pacman 安装 zsh, 因为一会安装 oh my zsh 的时候会用到 git, 所以也一并装了。

  1. 更新软件包
pacman -Syu
  1. 安装 zsh 和 git
pacman -S zsh git
  1. 安装 oh my zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

2.1. 自动启动 zsh

在 .bash_profile 文件最后一行添加:

zsh

2.2. 安装 zsh 插件

其实默认 oh my zsh(以下简称 zsh) 已经在安装的时候就帮我们下载好了所有插件, 只不过需要用户自己选择启用哪个. 根据官网的说明, 需要做的很少, 下面就来实际操作一下吧.

打开文件 ~/.zshrc, 其中有如下行:

plugins=(git)

将需要的插件按空格分开, 放于此处即可。我的配置如下:

plugins=(git extract z sublime)

修改完后, 如果需要在当前 shell 中生效, 需要执行

source ~/.zshrc

2.3. zsh 查看支持插件的方法

方法一: 直接查看 github 的 zsh 官网

方法二: 因为 zsh 在安装的时候帮我们下载了所有插件, 所以也可以本地查看. 进到默认插件目录: cd ~/.oh-my-zsh/plugins

2.4. zsh 命令自动补全插件

2.4.1. zsh-autosuggestions 自动补全插件

  1. 下载该插件到 .oh-my-zsh 的插件目录
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
  1. 编辑 .zshrc 文件

找到 plugins=(git) 这一行, 如果没有添加。更改为如下

plugins=(git zsh-autosuggestions)
  1. 重启命令

2.4.2. incr 也是自动补全插件

  1. 下载自动补全插件 http://mimosa-pudica.net/src/incr-0.2.zsh

  2. 放到 oh-my-zsh 的插件库中

.oh-my-zsh/plugins/ 创建 incr 文件夹放到该文件夹中

  1. 在. zshrc 中添加

.zshrc 文件末尾添加下面这行

source ~/.oh-my-zsh/plugins/incr/incr*.zsh
  1. 重启命令行

3. 安装软件

pacman 是 MSYS2 自带的软件管理工具。同时, pacman 也是 ArchLinux 上的包管理器。关于 pacman 的详细使用说明可以参考 ArchWiki 上的这篇 文章

3.1. 常用命令

命令功能
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 base-devel
pacman -S vim

3.2. 升级

3.2.1. 升级核心包

pacman -S --needed filesystem msys2-runtime bash libreadline libiconv libarchive libgpgme libcurl pacman ncurses libintl

之后需要关闭所有 MSYS2 shell, 然后重新运行。

3.2.2. 升级其他包

pacman -Su

3.3. 制作软件包 makepkg

MSYS2 官网的软件包是通过 makepkgmakepkg-mingw 制作的。

可参:

  • MINGW_INSTALLS=mingw64 makepkg -sLf --skippgpcheck
  • http://sourceforge.net/p/msys2/wiki/Contributing to MSYS2/,
  • C:\msys64\usr\share\pacman\PKGBUILD.proto

3.3.1. 常用软件包编译

常用软件包我们可以简单的使用命令直接从官网安装即可, 比如安装 openssl:

32bit: pacman -S mingw-w64-i686-openssl
64bit: pacman -S mingw-w64-x86_64-openssl

有时候根据项目需要我们不得不自己动手编译依赖的软件包, 以下是我在工作用到的库编译过程记录。

3.3.2. 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
  • 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

3.3.3. 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=../
 类似资料: