2015-05-04 2 views
3

Я хочу указать мою глобальную конфигурацию cabal, чтобы использовать только Stageage LTS.cabal sandbox with stackage

Есть ли в этом случае песочница cabal?

Как я понимаю, не должно быть никакого адского аджа, поскольку все проекты будут использовать предопределенный набор пакетов, которые гарантированно будут строить вместе.

Есть ли способ подготовить все пакеты LTS пакета для ускорения всех будущих проектов?

ответ

3

Почему песочницы?

Я думаю, что есть еще преимущество использования песочниц:

  • Не каждый пакет в stackage, если вы в конечном итоге, используя библиотеку или в зависимости от чего-то, что не является частью stackage у вас нет никакой гарантии, что он будет работать с остальными вашими пакетами.

  • Песочницы имеют другие виды использования, кроме как предотвращать адский ад. Их другим основным преимуществом является возможность добавления локальных каталогов в качестве источников пакетов. Например, скажем, вы проверили два пакета на локальном диске ~/code/a и ~/code/b и скажете, что b зависит от a. Если вы хотите проверить, что b работает с некоторыми изменениями, внесенными вами в a, вы можете добавить свой местный счет a в качестве источника для изолированной камеры b.

    cd ~/code/b 
    cabal sandbox add-source ~/code/a 
    cabal build 
    

Предварительно построить LTS пакеты

Если вы настроены на Предсборочном все ваши пакеты, которые вы можете использовать следующий, чтобы установить все пакеты, перечисленные в файле cabal.config.

cat cabal.config | sed -rn 's/^.* ([^ ]+) ==.*/\1/gp' | xargs cabal install