type
status
date
Aug 9, 2023 06:49 AM
slug
summary
tags
category
icon
password
引言:
MSYS2 安装MYSY2 介绍竞品对比:什么是 ucrt64:安装-官网默认安装即可总结遗留问题&思考安装后的配置问题现象说明解决home 路径不一样问题总结遗留问题&思考win 秘钥配置问题各种权限导致登录异常解决过程总结遗留问题&思考遇到的问题问题现象说明解决过程总结遗留问题&思考
MSYS2 安装
因为要在 win 安装 rsync, 折腾到 MSYS2.
MYSY2 介绍
历史:
当 MinGW 出现之后,程序员们发现光有 GCC 不行啊,面对着如此 naive 的 Windows 命令行也照样不能干活,Cygwin 又太大了。所以 MinGW 的一群人再次 fork 了 Cygwin,把它精简了一番,就成了 MSYS。后来,MinGW 咕咕咕了,MSYS 也随之咕咕咕了,又一群程序员 fork 了新版本的 Cygwin,精简了一番,给它加上了 Pacman 包管理器(没错就是 Arch Linux 用的那个),最后给 MSYS 的名字后面加了个 2,成了 MSYS2
竞品对比:
MSYS2
是一个 Windows 平台上的软件分发和开发环境,它提供了大量的 GNU 和开源工具,以及一个在 Windows 上运行的 Unix-like shell。如果你正在寻找 MSYS2
的替代品,以下是一些你可能会考虑的选择:- Cygwin: 这是一个为 Windows 创建的类似于 Unix 的环境和命令行界面。它提供了大量的 GNU 和其他开源工具,允许 Windows 用户在本地运行这些工具。
- Windows Subsystem for Linux (WSL): 这是 Windows 10 和 Windows Server 2019 提供的一个兼容层,允许用户在 Windows 上运行 Linux 二进制可执行文件。使用 WSL,你可以在 Windows 上运行完整的 Linux 发行版。
- Git for Windows: 虽然主要用于 Git,但它也提供了一个 bash shell 和一组常见的 Unix 工具,包括 sed、awk 和其他命令。
- MINGW-w64: 这是一个为 Windows 创建的开发环境,它允许开发者为 Windows 创建原生的 32 位和 64 位应用程序。
- Docker for Windows: 使用 Docker,你可以在 Windows 上运行 Linux 容器,这为在 Windows 上运行 Linux 工具和应用程序提供了一个隔离的环境。
选择哪个替代品取决于你的具体需求。例如,如果你只是想在 Windows 上运行 Linux 工具,WSL 可能是最好的选择。如果你是一个开发者,希望为 Windows 创建原生应用程序,那么 MINGW-w64 可能更适合你。
为什么不选 WSL. WSL 路径没这样
/c/test
, 这个路径最舒服.所以用 MSYS2.什么是 ucrt64:
ucrt64
是 MSYS2 中的一个子系统/工具链。MSYS2 为 Windows 平台提供了一个软件分发和开发环境,它包含了多个子系统/工具链,如 mingw-w64
(为 Windows 创建原生应用程序)和 msys
(提供类 Unix 工具和 shell)。在这种上下文中,
ucrt64
是 MSYS2 的新工具链,它针对 Windows 的 "Universal C Runtime" (UCRT) 进行了编译。UCRT 是 Windows 10 的一部分,并且可以作为一个更新向下兼容至 Windows Vista。使用 ucrt64
工具链编译的程序或库将依赖于 UCRT,这意味着在新版本的 Windows 上它们可能会有更好的兼容性和性能。总之,
ucrt64
是 MSYS2 中的一个工具链,它针对 Windows 的 "Universal C Runtime" 进行了编译。安装-官网默认安装即可
会卡 50% - 60% 很久. 等即可.
总结
遗留问题&思考
安装后的配置
问题现象说明
默认 home 路径在 `C:\msys64\home\v`
但是 ssh 配置, 参考如下链接第一种方式配置(win 自带 sshd)后, ssh 远程登录 home 路径是 win 自己的 home 路径.
第二种方式配置安装错误
解决home 路径不一样问题
统一用 ssh 远程登录,也就是用 win 自带 home 路径.
注意脚本中如下写:
@C:\msys64\msys2_shell.cmd -defterm -here -no-start -ucrt64 -shell zsh
总结
遗留问题&思考
还是有缺陷, 有些文件还是吃`C:\msys64\home\v` , 比如.ssh 的 config key 文件.
但.zshrc .vimrc 吃 win 自己的 home 路径
win 秘钥配置问题
各种权限导致登录异常
解决过程
在Windows OpenSSH中,默认的授权密钥存放位置为ProgramData\ssh\administrators_authorized_keys,此位置对应为管理用户权限。
这样会导致无法ssh登录, 还是要把__PROGRAMDATA__/ssh/administrators_authorized_keys
打开.
#重启sshd,需要管理员权限 Restart-Service sshd
右键key.pem->属性->安全->高级
1.把所有者改为当前用户(如果是当前用户就不用管了)
2.禁用继承->从此对象中删除所有已继承的权限
3.添加当前用户, 并设置访问类型为完全控制
最终的效果如截图

总结
遗留问题&思考
rsync 只能做客户端,不能做 server.
也就是只能在 win 下跑 rsync , 不能其他电脑 rsync 到 win.