• MSYS2 使用


    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
    
    • 1

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

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

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

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

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

    1.2. 开启颜色

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

    vim /etc/pacman.conf
    
    • 1

    1.3. 文件目录映射

    msys64\etc\fstab
    
    • 1

    比如配置 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"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2. zshoh my zsh

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

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

    2.1. 自动启动 zsh

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

    zsh
    
    • 1

    2.2. 安装 zsh 插件

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

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

    plugins=(git)
    
    • 1

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

    plugins=(git extract z sublime)
    
    • 1

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

    source ~/.zshrc
    
    • 1

    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
    1. 编辑 .zshrc 文件

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

    plugins=(git zsh-autosuggestions)
    
    • 1
    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
    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
    
    • 1
    • 2

    通过安装软件组来安装工具链:

    pacman -S mingw-w64-x86_64-toolchain
    pacman -S base-devel
    pacman -S vim
    
    • 1
    • 2
    • 3

    3.2. 升级

    3.2.1. 升级核心包

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

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

    3.2.2. 升级其他包

    pacman -Su
    
    • 1

    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
    
    • 1
    • 2

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

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

    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=../
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    SpringCloud怎么禁用sentinel
    如何在filters中使用data中数据?
    Windows命令行窗口修改字体方法
    【编程题】【Scratch一级】2021.06 奔跑的马
    Android ByteBuffer Bitmap byte[] convert,Kotlin
    ESP32-S3在VSCODE上编译烧录
    如何修改NX二次开发菜单到NX自带的标签页
    Python Subprocess介绍:基础和示例
    Matlab结合ChatGPT—如何计算置信区间?
    【Qt 开发基础体系】字符串类应用和常用的数据类型
  • 原文地址:https://blog.csdn.net/wan212000/article/details/128015362