安装tcp包时出现Cabal invalid file name "Aux"错误如何解决
错误原因
这是Windows环境下使用cabal安装tcp包时的典型兼容性报错:tcp-0.0.2版本的源码tar包打包不规范,使用了反斜杠\作为目录路径分隔符(即报错信息中提到的tcp-0.0.2\\Network\\TCP\\Aux\\路径),不符合tar格式统一使用正斜杠作为路径分隔符的标准。cabal在Windows下解压这类不符合规范的tar包时,会将带反斜杠的路径判定为非法文件名,直接中断解压流程导致安装失败。
修复方案
- 最简便的方案是将cabal-install升级到3.8.1.0及以上版本,高版本cabal已经修复了Windows平台下tar包路径分隔符的兼容问题,可自动识别转换tar包内的反斜杠路径,升级完成后直接执行原安装命令即可正常安装。
- 如果暂时不方便升级cabal,可以直接指定安装0.0.3及以上版本的tcp包,tcp从0.0.3版本开始已经修正了打包时的路径分隔符问题,不会触发该解压错误,执行以下命令即可安装:
cabal install tcp-0.0.3 - 如果有特殊需求必须使用tcp-0.0.2版本,可以手动下载该版本源码包,将包内所有路径的反斜杠替换为标准正斜杠
/后重新打包,再通过本地路径执行cabal install完成安装,该方案操作步骤较多,仅在前两种方案无法使用时选择。
内容的提问来源于stack exchange,提问作者Amber
相关产品推荐
相关产品推荐

