Search code examples
cabalyesod

why is the cabal sandbox inited after installing yesod-bin?


On the Yesod homepage (http://www.yesodweb.com/page/quickstart) the following installation sequence is suggested:

wget http://www.stackage.org/lts/cabal.config
cabal update                       # download package list
cabal install alex happy yesod-bin # install build tools
yesod init --bare                  # answer questions as prompted
cabal sandbox init                 # set up a sandbox
cabal install --run-tests          # install libraries
yesod devel                        # launch devel server

My question is: why is "cabal sandbox init" not directly after "cabal update"?

In the suggested way alex happy yesod-bin are all installed in the global space instead of inside the sandbox.

Thanks, Alex.


Solution

  • Because it generally confuses people when they can't run yesod directly; installing the executables into ~/.cabal/bin means that the user can always access them. It does leak some information outside of the sandbox, but it's typically the right trade-off to take.