🛖win server 搭建 linux 环境
2023-8-9
| 2023-8-9
0  |  0 分钟
type
status
date
Aug 9, 2023 06:49 AM
slug
summary
tags
category
icon
password
引言:
 
 

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 的替代品,以下是一些你可能会考虑的选择:
  1. Cygwin: 这是一个为 Windows 创建的类似于 Unix 的环境和命令行界面。它提供了大量的 GNU 和其他开源工具,允许 Windows 用户在本地运行这些工具。
  1. Windows Subsystem for Linux (WSL): 这是 Windows 10 和 Windows Server 2019 提供的一个兼容层,允许用户在 Windows 上运行 Linux 二进制可执行文件。使用 WSL,你可以在 Windows 上运行完整的 Linux 发行版。
  1. Git for Windows: 虽然主要用于 Git,但它也提供了一个 bash shell 和一组常见的 Unix 工具,包括 sed、awk 和其他命令。
  1. MINGW-w64: 这是一个为 Windows 创建的开发环境,它允许开发者为 Windows 创建原生的 32 位和 64 位应用程序。
  1. 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,此位置对应为管理用户权限。
因此需要修改默认授权文件位置。通过文本编辑器(推荐vscode)打开ProgramData\ssh\sshd_config,修改以下条目, 以修改 Pubkey 位置为home 路径下的默认文件authorized_keys.
这样会导致无法ssh登录, 还是要把 __PROGRAMDATA__/ssh/administrators_authorized_keys 打开.
 
 
#重启sshd,需要管理员权限 Restart-Service sshd

右键key.pem->属性->安全->高级
1.把所有者改为当前用户(如果是当前用户就不用管了)
2.禁用继承->从此对象中删除所有已继承的权限
3.添加当前用户, 并设置访问类型为完全控制
最终的效果如截图
notion image

总结

遗留问题&思考

 
rsync 只能做客户端,不能做 server.
也就是只能在 win 下跑 rsync , 不能其他电脑 rsync 到 win.
 

 

遇到的问题

问题现象说明

解决过程

总结

遗留问题&思考

技术折腾
  • 工具
  • 开发
  • 操作系统
  • WIN
  • Linux
  • 提取pdf文档的所有图片rsync 按照列表同步
    目录