2015-02-24 2 views
1

На домашней странице Йесод (http://www.yesodweb.com/page/quickstart) следующая последовательность установки предлагается:Почему песочница cabal после выхода Yesod-bin?

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 

Мой вопрос: почему «междусобойчик песочнице инициализации» не сразу после «междусобойчик обновления»?

В предлагаемом способе alex happy yesod-bin устанавливаются в глобальном пространстве вместо встроенной песочницы.

Thanks, Alex.

ответ

4

Потому что это обычно путает людей, когда они не могут запустить yesod напрямую; установка исполняемых файлов в ~/.cabal/bin означает, что пользователь всегда может получить к ним доступ. Это делает утечки информации за пределами песочницы, но это, как правило, правильный компромисс.

+0

Чтобы добавить к этому, alex и happy создадут инструменты, которые используют несколько пакетов, но, к сожалению, Cabal [не будет автоматически устанавливать средства сборки] (https://github.com/haskell/cabal/issues/220). Вероятно, вы хотите, чтобы они в вашей глобальной базе данных пакетов не допускали ошибок при установке других пакетов. – MaxGabriel

+0

кажется, что у кого-то была аналогичная проблема, и немного изменил рабочий процесс, чтобы все это превратилось в песочницу: https://gist.github.com/krdlab/712defa9304069af583d – Carsten

Смежные вопросы