Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save osmanmesutozcan/61ecafe8c5a29b41eec76df8fc5a0705 to your computer and use it in GitHub Desktop.
Save osmanmesutozcan/61ecafe8c5a29b41eec76df8fc5a0705 to your computer and use it in GitHub Desktop.
Install Cabal, GHC, or GHCJS with one Nix command
# install nix (5.5 mins)
curl https://nixos.org/nix/install | sh
# open a new shell to source nix
bash
# query available haskell compilers
nix-env -qaP -A nixpkgs.haskell.compiler [QUERY]
# install ghc (2.5 mins, cached binary)
nix-env -iA nixpkgs.haskell.compiler.ghc865
# ghc is now in your PATH
ghc --version
# query cabal install version
nix-env -qaP -A nixpkgs.haskellPackages.cabal-install
# install cabal install (0.5 mins, cached binary)
nix-env -iA nixpkgs.haskellPackages.cabal-install
# cabal is now in your PATH
cabal --version
# Install ghcjs (take one sleep, build from source, with `-j1`)
# https://github.com/NixOS/nixpkgs/blob/67e07308236bb7a9fa11f3b599838384db650ecb/pkgs/development/compilers/ghcjs-ng/default.nix#L96
# It will appear to hang at places like 'Preprocessing library for unix-2.7.2.2..'
# Use `ps -ef | grep nix` to check it is still doing work.
nix-env -iA nixpkgs.haskell.compiler.ghcjs
# ghcjc is now in your PATH
ghcjs --version
# cleanup disk space from unused nix stuff
nix-collect-garbage -d
# uninstall everything
sudo rm -rf /nix
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment