Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 阴谋集团:可执行数据文件_Haskell_Cabal - Fatal编程技术网

Haskell 阴谋集团:可执行数据文件

Haskell 阴谋集团:可执行数据文件,haskell,cabal,Haskell,Cabal,我想在cabaldata files部分中包含一个可执行文件,以将其作为Haskell程序中的子进程执行 文件就在那里,getDataFileName对它起作用,但它缺少可执行位,因此尝试使用System.Process.createProcess运行它会失败,因为权限被拒绝 阴谋集团有没有办法保留文件的执行权限?有没有另一种干净的方法来解决这个问题?正如一些关于阴谋集团的补丁中总结的那样,当前(未充分记录)的状态是,一个人应该同时使用副本和安装挂钩,因为其中一个将被执行 编辑:经过一些挖掘,有

我想在cabal
data files
部分中包含一个可执行文件,以将其作为Haskell程序中的子进程执行

文件就在那里,
getDataFileName
对它起作用,但它缺少可执行位,因此尝试使用
System.Process.createProcess运行它会失败,因为
权限被拒绝

阴谋集团有没有办法保留文件的执行权限?有没有另一种干净的方法来解决这个问题?

正如一些关于阴谋集团的补丁中总结的那样,当前(未充分记录)的状态是,一个人应该同时使用副本和安装挂钩,因为其中一个将被执行


编辑:经过一些挖掘,有一个在阴谋集团,这将是一个非常好的解决方案,如果它被实施。

您可能需要解决它与一个自定义
Setup.hs
文件和安装后挂钩。虽然在这种情况下,我可能会在调用
createProcess
之前修改您的代码以设置可执行位,因为自定义
Setup.hs
文件可以是PITA@MichaelSnoyman:但我认为我的代码不一定具有设置可执行位的权限,如果它安装在系统目录中并由用户执行,那么您是正确的。在这种情况下,您可能需要使用Setup.hs选项,或者使用一些丑陋的技巧,例如将文件复制到临时位置,然后设置可执行位。@MichaelSnoyman:我现在尝试使用自定义
Setup.hs
选项,但由于阴谋集团没有调用钩子,目前似乎无法实现这一点-使用
复制
钩子而不是
安装
钩子如何?关于第二个解决方案,@MichaelSnoyman也在上面提出了这一点,但我们得出结论,这不一定能实现,因为应用程序可能由未经授权的用户运行更改全局安装的数据文件。我编辑了您的答案以删除有问题的第二个解决方案,接受第一个解决方案作为答案。我有点不知所措。我在谷歌上搜索一个有效的例子,但运气不好。在这段时间内,情况是否发生了变化?谢谢