nix環境でhaskellのprojectをビルド
久しぶりにhaskellを触った際によくわからなくなって調べたのでメモ
とりあえずビルドしたいときのチートシート的にまとめておく
基本的にこちらに書いてある通り
Getting Started Haskell Project with Nix | MaybeVoid
nixはinstall済みだったが一応 ghcとcabalはnixのglobalにいれてしまう
$ curl https://nixos.org/nix/install | sh $ nix-env -iA nixpkgs.haskell.compiler.ghc865 $ nix-env -i cabal-install
projectの作成とビルド
$ nix-shell --pure -p ghc cabal-install --run "cabal init" $ nix-shell --pure -p cabal2nix --run "cabal2nix ." > default.nix $ echo 'let pkgs = import <nixpkgs> { }; in pkgs.haskellPackages.callPackage ./default.nix { }' > release.nix $ nix-build release.nix
これでビルドしてexecutableが生成されるようになった ちなみに実行
$ ./result/bin/<project name>
使うpackageを変更するなどでcabal fileを変更した際はdefault.nixを生成してからビルド
$ nix-shell --pure -p cabal2nix --run "cabal2nix ." > default.nix $ nix-build release.nix
replを使いたい場合
$ nix-shell --run 'cabal repl'