如何解决Windows下通过Cygwin更新curl后版本未更新的问题?
解决Cygwin安装新版curl后仍显示旧版本的问题
这个问题我碰过好多次,本质就是系统PATH环境变量的优先级在捣乱——Windows自带的curl路径排在了Cygwin的前面,导致你输入curl -V时,系统优先调用了Windows里的旧版本7.40,而不是Cygwin刚装的7.59。下面给你几个实用的解决办法:
第一步:确认当前调用的curl位置
先在Cygwin终端里执行这条命令,看看你现在用的是哪个路径的curl:
which curl
如果输出是类似/cygdrive/c/Windows/System32/curl.exe的Windows系统目录路径,那就能实锤是PATH优先级的问题了。
解决办法1:临时调整PATH优先级(单次生效)
在Cygwin终端里执行这条命令,把Cygwin的/usr/bin目录(新版curl所在位置)放到PATH最前面:
export PATH=/usr/bin:$PATH
然后再输入curl -V,应该就能看到7.59版本了。不过这个设置只在当前终端会话有效,关闭终端后会恢复原样。
解决办法2:永久修改PATH(长期生效)
如果想一劳永逸,就修改Cygwin的用户配置文件:
- 在终端里打开
~/.bashrc文件(如果没有就创建一个):nano ~/.bashrc - 在文件末尾添加一行:
export PATH=/usr/bin:$PATH - 按
Ctrl+O保存,Ctrl+X退出编辑器。 - 重启Cygwin终端,或者执行
source ~/.bashrc让配置立即生效,之后再查curl -V就会一直显示新版了。
解决办法3:直接指定新版curl路径调用
如果不想折腾PATH,每次需要用新版curl时,直接输入它的完整路径就行:
/usr/bin/curl -V
这样系统就会直接调用Cygwin安装的7.59版本,不会再用到Windows的旧版本。
额外检查:确认系统里的curl版本分布
可以用这条命令查看系统中所有curl的位置:
whereis curl
你会看到多个路径的curl,确保/usr/bin/curl对应的是7.59版本,其他路径的是旧版本,这样调整起来更有针对性。
内容的提问来源于stack exchange,提问作者Nikhil Sahni
相关产品推荐
相关产品推荐

