如何更改我的 MinGW/MSYS + mintty 主目录?

Ben*_*ank 7 windows mingw msys mintty

我使用 mintty 作为 MinGW/MSYS 的控制台模拟器。最近(我不确定确切时间),此组合使用的主目录从我的 Windows 用户文件夹 ( /c/Users/<me>/) 更改为/home/<me>/,这对我造成了轻微破坏。

如何将我的主目录改回?我已经在网上进行了一些搜索,但到目前为止我能找到的所有信息都是特定于 Cygwin 的,并且没有很好地转换为 MinGW/MSYS。

到目前为止,我所追求的最有可能的途径是/etc/passwd/etc/nsswitch.conf,这两个途径都完全不存在于 MSYS 的根目录中。我试过创建一个/etc/nsswitch.conf包含一条db_home: windows线,但这似乎没有效果。我还没有尝试创建MinGW/MSYS 中不存在的/etc/passwd文件mkpasswd,我不知道它的内容应该是什么。

我在跑:

  • Windows 10(带周年更新)
  • 我安装的所有 MinGW 和 MSYS 软件包的最新版本
  • ...包括 msys-mintty 1.0.3-1-msys-1.0.17

Ben*_*ank 11

与 Cygwin 不同,MSYS 依赖于HOME环境变量。要设置或更改您的HOME变量:

  1. 按键盘上的Win-r或从“开始”菜单中选择“运行...”。
  2. 键入“sysdm.cpl”并单击“确定”。
  3. 选择高级选项卡,然后单击环境变量...
  4. 单击新建...创建一个新HOME变量或选择现有变量并单击编辑...
  5. 完成后,继续单击“确定”直到所有窗口都关闭。


Kon*_*lin 6

MSYS2 的解决方案是/etc/nsswitch.conf使用一行创建/更新

db_home: windows
Run Code Online (Sandbox Code Playgroud)

如 Cygwin 文档中所述: https: //cygwin.com/cygwin-ug-net/ntsec.html#ntsec-mapping-nsswitch-home

此后,所有 MSYS 应用程序和终端都必须关闭,因为配置仅在 MSYS DLL 加载时读取一次。(请参阅https://cygwin.com/cygwin-ug-net/ntsec.html#ntsec-mapping-nsswitch。)

截至 2019 年 10 月,它在全新安装的 MSYS2 中适用于我。可能在 MSYS 1 中nsswitch.conf不支持。

创建HOME环境变量适用于 shell,但不适用于无论如何ssh都会尝试访问的/home/User/.ssh