unix philosophy

This commit is contained in:
Sam Halliday 2018-10-19 16:48:15 +01:00
parent 13ce348b0c
commit 4a28439e27

View File

@ -2,7 +2,7 @@
[![Build Status](https://travis-ci.org/haskell/ghcup.svg?branch=master)](https://travis-ci.org/haskell/ghcup)
[![license](https://img.shields.io/github/license/haskell/ghcup.svg)](COPYING)
Although [`cabal-install`](https://hackage.haskell.org/package/cabal-install) automatically installs Haskell library dependencies, and selects a specific version of `ghc` (see [`with-compiler`](https://cabal.readthedocs.io/en/latest/nix-local-build.html#cfg-flag---with-compiler)). However, `cabal-install` will fail if the required version of `ghc` is not available. Unfortunately, many operating systems do not offer a way to install specific versions of `ghc`.
[`cabal-install`](https://hackage.haskell.org/package/cabal-install) follows the UNIX philosophy of [do one thing and do it well](https://en.wikipedia.org/wiki/Unix_philosophy#Do_One_Thing_and_Do_It_Well): it builds your project and downloads your dependencies. However, `cabal-install` does not download `ghc` if one is needed ([it can demand that a specific version of `ghc` is available](https://cabal.readthedocs.io/en/latest/nix-local-build.html#cfg-flag---with-compiler)). Unfortunately, many operating systems do not offer a way to install multiple versions of `ghc`.
`ghcup` makes it easy to install specific versions of `ghc` on GNU/Linux, and can also bootstrap a fresh Haskell developer environment from scratch.