在 cygwin64 中退出代码 127

Tim*_*nti 2 windows-7 cygwin package-management exit-code

经过多年没有出现问题,我在 64 位 Windows 7 Professional 上安装的cygwin64 中的几个程序突然无法运行,而是似乎立即退出并显示代码 127,通常意味着在 Bash 中“找不到命令”。尤其是,节目喜欢vimemacs甚至clear出现此行为,而其他人一样viechotouch,和date似乎正常工作。

起初,我认为上一轮软件包更新可能出了问题,所以我使用 cygwin setup 的命令行界面运行了另一个更新,但似乎没有帮助。

据我所知,受影响的程序根本不起作用。甚至没有--version对程序工作进行标记,这让我认为 cygwin 本身或常见依赖项可能有问题:

$ vim --version
$ echo $?
127
Run Code Online (Sandbox Code Playgroud)

(如果有帮助,我可以提供各种软件包的特定版本号,但由于这个问题在最近更新之前和之后都存在,我怀疑它很重要。)

我仔细检查了我的 PATH 变量,它以 开头/usr/local/bin:/usr/bin:,正如预期的那样。这些程序中是否有一些新的依赖项没有被 cygwin 的包管理器正确解析,或者可能没有自动添加到我的 PATH 中?

我错过了其他明显的东西吗?

小智 5

在我执行 cygwin 更新后,完全相同的事情发生在我身上,vim 无法启动,代码 127。添加 clear.exe 什么也没做。

strace vim +q给 sigalstack 无法定位在 dll cygwin1.dll cygwin 邮件列表中的好心人说我的更新可能没有完成,因为我没有关闭我所有的 cygwin 进程。事实上,我让 sshd 和 cygrunsrv 运行,我杀死了它们,并重新安装了 cygwin base(进入设置并手动选择重新安装 cygwin base)这解决了所有问题。祝朋友们好运