HaskellStack“Permission denied”错误
Posted 编程fan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HaskellStack“Permission denied”错误相关的知识,希望对你有一定的参考价值。
背景
-
同样的 lts 版本,在Linux下是可以正常编译的 -
在 lts 之前的某个版本是可以正常编译的
原因
I fixed it by just running chcp 65001
before running stack. The error is raised only when the charset used in console is not UTF-8. It would be nice if the stack dependency onprocess-1.6.3.0
is updated to> 1.6.5.0
.stack-2.1.3
raisespermission denied (Permission denied)
instead ofinvalid argument (invalid character)
due to a bug inprocess-1.6.3.0
.
process
包在
1.6.3.0
版本引入了这个bug,这样导致所有依赖这个包的库和程序在非UTF-8的终端上都会出现这个问题,该问题已经在
1.6.5.0
以上版本得到了修复。这样就可以完整解释我遇到的这个问题了:lts-14.22内的
process
版本
1.6.5.0
是有问题的,而我的程序正好使用了
process
包。之前没问题,是因为
process
包的依赖是后续加的。而我的Linux环境编码是utf8,所以没有受到影响。
解决方案
-
升级 process
包,使用stack的用户,lts 15版本process
最低版本是1.6.7.0
,该问题已经得到了修复 -
由于某些原因,升级不了 process
的用户,在build之前,先在命令行执行chcp 65001
切换到UTF-8的代码页,这样问题就不会出现了。
封面图片使用了Vecteezy的作品。
以上是关于HaskellStack“Permission denied”错误的主要内容,如果未能解决你的问题,请参考以下文章