基本安装Cygwin Windows 10 - IO错误打开

问题描述 投票:0回答:1

我使用的是Windows 10。

我从https://cygwin.com/install.html下载了setup-x86_64.exe并选择了默认值(从Internet / Direct Connection /默认位置安装)。

我尝试了几个镜像,包括cygwin.mirror.constant.com

我接受所有默认包以及一些基本的开发人员(gdb,make)并选中“Select required packages(RECOMMENDED)”。

我通过Cygwin安装程序得到了很多方法,然后获得了许多弹出消息中的第一个“IO错误打开文件....._ autorebase / binutils / cygwin / grep / mintty等等。你想跳过这个包吗?”

如果我跳过这些包,我会得到一个不工作的Cygwin安装(它找不到薄荷)。如果我没有跳过这些包,那么当Cygwin安装程序到达第一个问题包时挂起它就会挂起。

在此先感谢我缺少的设置过程的哪一部分。

cygwin
1个回答
0
投票

有点晚了,但无论如何:昨天我第一次尝试在Windows 10上安装Cygwin时遇到了同样的问题。

我已经按照各个站点(包括这个)给出的所有建议:禁用防病毒软件,跟随the Cygwin FAQ,等等,但无济于事。

然后我研究了设置日志,发现了一条告诉我地址​​不匹配的信息(对不起,我没有确切的措辞 - 我肯定不会重复实验......)。这让我想到它可能与ASLR(一种加强系统抵御恶意软件的技术)有关。

下一步是通过Windows Defender的UI关闭ASLR。完成之后,我可以毫无问题地安装Cygwin。当我再次打开ASLR时,我还没有测试过我是否真的可以使用Cygwin;将它完全关闭后我感觉不舒服。

另一种方法是关闭每个可执行文件的ASLR。这也可以在Windows Defender的UI中实现。但这可能意味着添加了几十个异常,具体取决于您安装的Cygwin软件包的数量。

问题的技术原因是POSIX's fork()的工作原理。基本上,它使用相同的偏移地址克隆父进程的图像。但是当ASLR处于活动状态时,克隆过程时这些偏移量会发生变化,这会使fork()失败。由于qgxswpoi被Cygwin广泛使用,因此当ASLR处于活动状态时,它无法按预期运行。

© www.soinside.com 2019 - 2024. All rights reserved.