mysys2使用记录

安装

官网https://www.msys2.org/上直接进行下载。

image.png

如果下载速度比较慢,则可以右键复制下载链接到某雷软件里下载,经过p2p和镜像加速后速度非常快。

安装过程中,日志窗口有一些乱码,但是没什么影响能正常安装完成。

pacman

mysys2里使用了pacman来管理软件包。

-Msys2使用pacman管理软件。pacman的基本使用如下:

pacman -S <packge-name>     # 安装软件
pacman -U <gz-file>         # 安装本地包,其扩展名为 pkg.tar.gz
pacman -Syu                 # 同步Msys2源,并更新 
pacman -Sy                  # 仅同步源 
pacman -Su                  # 更新系统
pacman -Sy <packge-name>    # 同步源后再安装软件
pacman -R <packge-name>     # 该命令将只删除包,不包含该包的依赖。
pacman -Rs <packge-name>    # 在删除包的同时,也将删除其依赖。
pacman -Rd <packge-name>    # 在删除包时不检查依赖。
pacman -Ss <keywords>       # 这将搜索含关键字的包。
pacman -Qi <packge-name>    # 查看有关包的信息。

替换软件源

但如果上面下载安装包速度慢的话,使用pacman就同样会很慢了,比如我这里显示:

:: 正在同步软件包数据库...
错误:无法从 repo.msys2.org : Operation too slow. Less than 1 bytes/sec transferred the last 10 seconds 获取文件 'mingw32.db'

配置一下pacman使用清华大学的镜像(PS:其实安装包也可以从清华大学镜像站中下载)。修改方法如下:

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

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686

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

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64

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

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch

然后执行pacman -Syu刷新软件包并且更新mysys2系统组件即可,然后重启shell。
上面的/etc/是指mysys的安装目录下的etc目录。

mingw

mysys2默认在安装目录下放置了几个编译器的目录:clang32、clang64、mingw32、mingw64 但基本上都是空的,需要另外安装。

快速安装所有mingw:

pacman -S  mingw-w64-i686-toolchain
pacman -S  mingw-w64-x86_64-toolchain

但上面会将gcc-objectc等一起安装,比如i686的列表如下:

  1. mingw-w64-i686-binutils 2) mingw-w64-i686-crt-git 3) mingw-w64-i686-gcc 4) mingw-w64-i686-gcc-ada 5) mingw-w64-i686-gcc-fortran 6) mingw-w64-i686-gcc-libgfortran 7) mingw-w64-i686-gcc-libs 8) mingw-w64-i686-gcc-objc 9) mingw-w64-i686-gdb 10) mingw-w64-i686-headers-git 11) mingw-w64-i686-libmangle-git 12) mingw-w64-i686-libwinpthread-git 13) mingw-w64-i686-make 14) mingw-w64-i686-pkg-config 15) mingw-w64-i686-tools-git 16) mingw-w64-i686-winpthreads-git 17) mingw-w64-i686-winstorecompat-git

如果只想部分安装,手工自己挨个安装。示例,我的安装脚本:

pacman -S mingw-w64-i686-binutils mingw-w64-x86_64-crt-git mingw-w64-i686-gcc mingw-w64-i686-gcc-libs mingw-w64-i686-gdb mingw-w64-i686-headers-git mingw-w64-i686-libmangle-git mingw-w64-i686-libwinpthread-git mingw-w64-i686-make mingw-w64-i686-pkg-config mingw-w64-i686-tools-git mingw-w64-i686-winpthreads-git 

然后自动安装一些依赖库(,并下载100多M,安装837M)

mingw-w64-i686-bzip2-1.0.8-1  mingw-w64-i686-ca-certificates-20190110-1
mingw-w64-i686-crt-git-8.0.0.5576.34082b63-1  mingw-w64-i686-expat-2.2.9-1
mingw-w64-i686-gettext-0.19.8.1-8  mingw-w64-i686-gmp-6.2.0-1  mingw-w64-i686-isl-0.22-1
mingw-w64-i686-libffi-3.2.1-4  mingw-w64-i686-libiconv-1.16-1  mingw-w64-i686-libsystre-1.0.1-4
mingw-w64-i686-libtasn1-4.15.0-1  mingw-w64-i686-libtre-git-r128.6fb7206-2
mingw-w64-i686-mpc-1.1.0-1  mingw-w64-i686-mpdecimal-2.4.2-1  mingw-w64-i686-mpfr-4.0.2-2
mingw-w64-i686-ncurses-6.1.20190630-1  mingw-w64-i686-openssl-1.1.1.d-2
mingw-w64-i686-p11-kit-0.23.19-1  mingw-w64-i686-python-3.8.1-1
mingw-w64-i686-readline-8.0.001-2  mingw-w64-i686-sqlite3-3.31.0-1  mingw-w64-i686-tcl-8.6.10-1
mingw-w64-i686-termcap-1.3.1-5  mingw-w64-i686-tk-8.6.10-1
mingw-w64-i686-windows-default-manifest-6.4-3  mingw-w64-i686-xz-5.2.4-1
mingw-w64-i686-zlib-1.2.11-7  mingw-w64-x86_64-headers-git-8.0.0.5576.34082b63-1
mingw-w64-i686-binutils-2.33.1-1  mingw-w64-i686-gcc-9.2.0-2  mingw-w64-i686-gcc-libs-9.2.0-2
mingw-w64-i686-gdb-8.3.1-3  mingw-w64-i686-headers-git-8.0.0.5576.34082b63-1
mingw-w64-i686-libmangle-git-8.0.0.5573.a4de8df4-1
mingw-w64-i686-libwinpthread-git-8.0.0.5574.33e5a2ac-1  mingw-w64-i686-make-4.2.1-4
mingw-w64-i686-pkg-config-0.29.2-1  mingw-w64-i686-tools-git-8.0.0.5573.a4de8df4-1
mingw-w64-i686-winpthreads-git-8.0.0.5574.33e5a2ac-1
mingw-w64-x86_64-crt-git-8.0.0.5576.34082b63-1
下载大小:   107.72 MiB
全部安装大小:  837.50 MiB

msys2启动入口

安装Msys2后,或解压Msys2后,第一次运行下msys2_shell.cmd,提示第一次设置初始化完毕后,就可以运行Msys2.exe、mingw64.exe或mingw32.exe,主要区别:

  • mingw32 优先使用 msys64/mingw32 下的工具;
  • mingw64 优先使用 msys64/mingw64 下的工具;
  • msys2 两个都不使用,只用自身 msys 的工具;82

其它常用软件或库

pacman -S base-devel git wget p7zip perl ruby python2 ,不过有些上面安装过程中已经安装了。

与cmder集成

平常使用的是cmder,与其集成可以参考:

使用过程中的错误

GPGME error: 无效的加密引擎

参考资料:

  • This error can happen if there are conflicting gnupg installations in PATH. Try running pacman in a special shell like set PATH=, msys2_shell.bat.
  • MacType can cause this. Put gpg.exe and pacman.exe lines under the [UnloadDll] section of your .ini file under C:\Program Files (x86)\MacType\ini or C:\Program Files\MacType\ini.
  • Check BLODA.
  • It can happen when the upgrade process reported failures (fork errors). Use update-core for system upgrades and take care to follow the instructions.
  • Try re-installing gpgme libgpgme, gnupg and pacman packages (you can temporarily disable signature checking in /etc/pacman.conf).
  • Try removing /etc/pacman.d/gnupg, then pacman-key --init, pacman-key --populate msys2, pacman-key --refresh-keys.
  • Maybe autorebase.bat is sometimes needed even for 64-bit MSYS2.
  • Try debugging for GPGME by export GPGME_DEBUG=9 before running pacman ...something... 2> ~/gpgmelog and looking at the logfile ~/gpgmelog.

调用pacman-key --refresh-keys 时提示我找不到readline7,而我之前编译某项目时升级了libreadline8,这似乎破坏了gpgme库的引用。

临时在 D:\msys64\etc\pacman.conf中将 SigLevel = Never 的注释打开,把下面的 SigLevel = Required DatabaseOptional给注释了。

pacman能暂时能用。然后使用pacman -Su 升级所有系统组件(看日志中有重新安装libgpgme)后,再解除注释,pacman恢复正常。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容