3

有一段时间,我对在我的 Windows 机器上在 cabal 沙箱中进行安装/构建经常失败的事实感到困惑。我最终发现失败是由某些超出MAX_PATH限制的路径引起的(路径实际上限制为 255 个字符)。

作为一个具体的例子,如果我尝试cabal install data-default-instances-old-locale-0.0.1在一个 cabal 沙箱文件夹中,它会失败。在此过程中的某个时刻,Cabalar.exe使用看起来像dist/dist-sandbox-72eb259b\build\libHSdata-default-instances-old-locale-0.0.1-6jcjjaR25tK4x3nJhHHjFM.a-45644\libHSdata-default-instances-old-locale-0.0.1-6jcjjaR25tK4x3nJhHHjFM.a. 这是相对于 temp 目录下的工作文件夹(我已将其设置为 simple C:\Temp),因此完整路径为C:\Temp\data-default-instances-old-locale-0.0.1-18744\data-default-instances-old-locale-0.0.1\dist\dist-sandbox-72eb259b\build\libHSdata-default-instances-old-locale-0.0.1-6jcjjaR25tK4x3nJhHHjFM.a-18744\libHSdata-default-instances-old-locale-0.0.1-6jcjjaR25tK4x3nJhHHjFM.a.

最终路径的长度为 272 个字符,远远超过了 255 个限制。

可以在 Windows 上处理更长的路径,但这并不是一件小事,而且无论如何, ar 似乎没有做任何必要的事情来处理它们(这并不奇怪,因为它只是 GNU 工具链的一个端口)。

我有一种感觉,这是可预见的未来的情况,但也许有人可以想办法解决?

4

1 回答 1

3

这已在 cabal-install 的最新版本中得到修复。升级应该可以解决问题。

于 2015-06-30T03:04:26.993 回答