Col*_*ury 12 unix install haskell
所以,我写了一个简洁的小程序,可以分析日文文本,并向用户提供有关汉字使用的各种统计数据,我想向全世界发布这个程序.问题是,我不知道如何创建"发布".
我意识到*nix系统经常将可执行文件(或符号链接)放在像/ usr/bin这样的地方,并且构建脚本经常自动将它们放在那里,但事实证明我去了Haskell并写了这个东西.
然后只使用阴谋!
......我听你说.好吧,我会,除了我的程序有大量的数据文件,它读出来,当然程序需要知道这些文件的位置.通过使用cabal,可执行文件不会被抛到一些奇怪的项目文件路径a:
/usr/share/haskell/cabal/morecabal-1.0.4/myproject-1.3.4.1.a/thisisridiculous/
目前我从其源目录中运行可执行文件,它正在"./data"中查找数据文件.是否有典型的安装路径格式,所以我可以提前告诉我的程序在源查找数据的位置?
我最终的目标是使其成为Arch Linux软件包.任何人都可以帮助我开始吗?
对于好奇,git repo就在这里.在此先感谢您提供任何帮助.
ham*_*mar 12
在Cabal项目中引用数据文件的便携方式是data-files在.cabal文件的属性中命名它们.
Cabal将生成一个Paths_packagename定义函数的模块
getDataFileName :: FilePath -> IO FilePath
Run Code Online (Sandbox Code Playgroud)
您的代码可以用来确定数据文件的安装位置.
请参阅:从包代码访问数据文件
看看现有的Haskell项目如Gitit是如何为Arch linux打包的.特别是PKGBUILD.
您还可以下载gitit tarball并查看如何data-files:在gitit.cabal文件中使用该指令.
我不读Haskell,但根据我对源的理解,文件Paths_gigit.hs(可在此处找到.)由cabal生成,因此您只需担心相对路径.然后只需要导入它并使用该getDataFileName功能.