Когда я создаю проект Cabal без песочницы, Cabal использует существующие библиотеки из моей установки Haskell Platform. Однако, если я попытаюсь сделать то же самое в песочнице Cabal, Cabal принудительно перестроит все мои зависимости в песочнице.
Чтобы сэкономить время сборки и дисковое пространство, было бы здорово иметь возможность указать Cabal использовать существующие библиотеки платформы Haskell вместо их пересборки. Это возможно?
Пример (файлы в сущности):
executable blog
hs-source-dirs: .
main-is: Test.hs
build-depends: base >= 4.5 && < 5
, text
Если я cabal build в каталоге, содержащем этот .cabal файл, мой Test модуль будет собран для платформы Haskell версии text.
Однако, если я сделаю то же самое в песочнице:
cabal clean # (or alternatively clone an empty gist)
cabal sandbox init
cabal build
Я получаю это:
$ cabal build
Package has never been configured. Configuring with default flags. If this
fails, please run configure manually.
Resolving dependencies...
Configuring install-test-0.1...
cabal: At least the following dependencies are missing:
text -any
Если я сейчас пойду и cabal install, последняя text библиотека будет построена с нуля под моей песочницей.
git clone https://gist.github.com/8964143.git && cd 8964143 && cabal sandbox init && cabal run, и это сработало для меня без перекомпиляции зависимостей. cabal-install 1.18.0.2 с Cabal 1.18.1.2 в Windows. - person Toxaris   schedule 13.02.2014cabal --version:cabal-install version 1.18.0.2, using version 1.18.1.1 of the Cabal library. Или это какой-то конфликт версий установки. :( - person Nurpax   schedule 13.02.2014cabal cleanмежду первымcabal buildи вторымcabal sandbox init && cabal build? Если это работает для вас, как насчет клонирования сути, а затем непосредственного выполненияcabal sandbox init && cabal build? Я понимаю, что в моих инструкциях не упоминалась часть о чистых сборках. Я отредактирую свой пост, чтобы включить эту информацию. - person Nurpax   schedule 20.02.2014cabal sandbox init. Теперь я также попробовалgit clone https://gist.github.com/8964143.git && cd 8964143 && cabal build && cabal sandbox init && cabal run, а такжеgit clone https://gist.github.com/8964143.git && cd 8964143 && cabal build && cabal sandbox init && cabal run. Все они выполняют некоторую настройку и компиляцию, а затем выводят приветствие. - person Toxaris   schedule 20.02.2014cabal build, что означает, что сборка в песочнице ничего не делает. Можешь попробоватьgit clone https://gist.github.com/8964143.git && cd 8964143 && cabal sandbox init && cabal run- не должно работать. Извините за это туда и обратно. - person Nurpax   schedule 20.02.2014