配置:
- Windows 10(64 位)(全新安装)
- Cygwin64 全新安装(下载的 setup-x86_64.exe)
安装看起来成功了。但是,当我尝试启动新创建的快捷方式时,窗口立即关闭。
快捷方式目标是C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -
。
如果我将其修改为C:\cygwin64\bin\mintty.exe -h always -i /Cygwin-Terminal.ico -
,窗口保持打开状态,但里面的消息是Failed to run /Cygwin-Terminal.ico: Permission denied
。
以下内容可能是转移注意力的花招,但我怀疑它实际上与问题有关:如果我运行 cmd 和cd c:\cygwin64
,我可以运行 Cygwin.bat,但是提示符是Unknown+User@DESKTOP-6SQ80GV ~
,这实际上不是我的用户名。/cygdrive/c/cygwin64/Cygwin-Terminal.ico
由具有管理员组的 Unknown+User 拥有,并具有 644 的权限。如果我 chmod +x 它,窗口中的错误消息将更改为:
C:/cygwin64/sbin/nologin.exe: error while loading shared libraries: ?: cannot open shared object file: No such file or directory
/sbin/nologin: Exit 127
我快速搜索了一下,但谷歌搜索似乎失败了,因为我没有找到太多有用的信息。我想我可以四处寻找,最终让事情顺利进行,但我想知道这里是否有人知道“什么是正确的解决这个问题的方法是什么?”。
答案1
在 Windows 7 上更新我的 Cygwin 安装后,我遇到了同样的问题。问题不在于更新本身,而在于 cygserver 服务的激活。如果您的 Windows 机器上安装了任何 Cygwin 服务,请尝试通过将这些服务设置为手动启动或自动启动但延迟来解决问题。
问题是 'cygserver' 服务将缓存帐户信息并将其提供给其他 Cygwin 应用程序和服务,如中所述https://cygwin.com/cygwin-ug-net/ntsec.html#ntsec-mapping-caching。帐户数据是从 Microsoft LDAP 服务检索的,该服务需要比 cygserver 服务更多的启动时间。将 cygserver 服务设置为延迟自动启动将解决此问题。但请记住,在 Windows (重新)启动后,cygserver 服务的启动可能会延迟几分钟。
希望这可以帮助 :-)
答案2
为了扩展 Izzet Beltir 的答案,如果您想让 Cygwin 立即运行,只需重新启动该服务即可:
打开命令行或 PowerShell 窗口 - 使用提升的权限(以管理员身份运行)
运行以下命令:
net stop cygserver net start cygserver
(对于早期版本的 Cygwin,服务名称可能是
cygservice
而不是cygserver
。)
现在您应该能够正常打开 Cygwin 终端。
答案3
对于Unknown+User@DESKTOP-6SQ80GV的问题
你需要阅读
https://cygwin.com/cygwin-ug-net/ntsec.html#ntsec-mapping-nsswitch
因为 cygwin 目前似乎无法从 SSID 中恢复您的用户配置文件。由于 W10 是最新版本,您的配置中可能有些东西尚未考虑,因此获得额外支持的最佳地点是主邮件列表:
https://www.cygwin.com/cygwin/lists.html
https://www.cygwin.com/ml/cygwin/