簡體   English   中英

在NixOS中,如何從命令行運行Haskell可執行文件?

[英]In NixOS, how to run a Haskell executable from the command line?

我正在嘗試從命令行運行Haskell可執行文件,遵循此博客的示例。 我的機器運行NixOS。

該博客是關於將markdown literate haskell編譯成html用於發布博客帖子。 該過程的一個步驟是在.lhs文件上運行haskell程序hscolour來創建一個.mkd文件,其代碼語法通過html和css突出顯示。

cat blah.lhs | hscolour -lit -css > blah.mkd

但是,當我嘗試運行此命令時,我收到以下command not found錯誤。

$ cat blah.lhs | hscolour -lit -css > blah.mkd                                                            
hscolour: command not found

我不確定我遇到的這個問題是否特定於NixOS,或者更廣泛地使命令行可用的haskell可執行文件。 如何hscolour提供諸如hscolour haskell可執行文件?


我已經嘗試在構建hscolournix-shell中運行此命令。 仍未找到hscolour命令。

$ nix-shell -p "haskellPackages.ghcWithPackages (pkgs: with pkgs; [hscolour])"
$ cat functor-proofs.lhs | hscolour -li
hscolour: command not found

有兩點需要了解:

  1. 您不需要GHC,只需要hscolour中的可執行文件,您可以將其作為haskell.lib.justStaticExecutables haskellPackages.hscolour獲取。

  2. hscolour的二進制文件稱為HsColour ,而不是hscolour

展示:

$ nix-shell -p 'haskell.lib.justStaticExecutables haskellPackages.hscolour' --run 'HsColour --version'
HsColour 1.24

我將通過在NixOS上尋找可執行文件來分享我發現的另一種方法。

$ `nix-build --no-out-link "<nixpkgs>"   -A haskellPackages.hscolour`/bin/HsColour --version                         
HsColour 1.24

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM