如何打包Haskell项目以供Linux使用

时间:2015-07-31 08:56:16

标签: linux haskell cross-compiling

这是我的setup.cabal文件:

-- Initial SparkSetup.cabal generated by cabal init.  For further 
-- documentation, see http://haskell.org/cabal/users-guide/

name:                SparkSetup
version:             0.1.0.0
-- synopsis:            
-- description:         
-- license:             
license-file:        LICENSE
author:              user
maintainer:          user
-- copyright:           
-- category:            
build-type:          Simple
-- extra-source-files:  
cabal-version:       >=1.10

executable SparkSetup
  -- main-is:             
  -- other-modules:       
  -- other-extensions:    
  build-depends:       base >=4.7 && <4.8
  -- hs-source-dirs:      
  default-language:    Haskell2010

运行cabal build时会在dist文件夹中生成一个SparkSetup.exe文件,该文件可以直接执行。 Linux有类似的东西吗?是否可以生成.sh文件,该文件将打包Haskell代码以在Linux上执行?

更新:我在Windows上想要为Linux / Unix交叉编译

2 个答案:

答案 0 :(得分:2)

构建一个适用于所有常见发行版的单个二进制文件充其量是一项具有挑战性的任务。人们喜欢Joey Hess managed to pull that through,但通常不建议这样做。

一种选择是将您的代码上传到hackage,指示您的用户安装Haskell Platform(如果您与旧版本的GHC保持兼容,就像运行{{1}一样简单在基于Debian的发行版上),然后运行apt-get install haskell-platform

为了确保您的软件包使用各种编译器构建,您可以使用Herbert’s excellent travis setup,至少只要您的代码在GitHub上。

答案 1 :(得分:0)

如果你想分发一些二进制文件,它几乎无处不在,并且非常容易安装,你可以随时使用Docker。另外,检查stack,它们似乎为这类事情提供了很好的支持。