Я хочу создать среду для учебных программ для Haskell, так как я хочу попробовать и изучить язык. Поэтому я прочитал о Cabal и уже получил его на своей машине, потому что иногда обновлял pandoc. Я последовал за некоторые tutorials, которые утверждают, что вы должны запустить:Как создать песочницу Cabal
$ cabal sandbox init
$ cabal install --only-dependencies
$ cabal build
Чтобы среда настройки. Однако, если я стараюсь так, я получаю следующее сообщение:
$ cabal sandbox init
Writing a default package environment file to
/home/xiaolong/development/Haskell/cabal.sandbox.config
Using an existing sandbox located at
/home/xiaolong/development/Haskell/.cabal-sandbox
(Выход из ls
команды)
$ ls
cabal.sandbox.config
И потом:
$ cabal install --only-dependencies
cabal: Error reading local package.
Couldn't find .cabal file in: .
Ха? Внезапно должен быть файл .cabal
? Это озадачивает меня. Какие шаги я должен предпринять, чтобы получить среду, в которой я могу просто установить пакеты, а затем использовать эту среду для запуска кода любых учебников, которые я выбираю?
This - это еще один учебник, предлагающий описанный рабочий процесс. Что-то там у меня пропало.
(У меня создается впечатление, что песочницы cabal сопоставимы с виртуальными виртуальными машинами python, будучи полезными на этом пути, что не нужно устанавливать пакеты по всей системе, но вместо этого можно установить их в каталог, а затем использовать эта среда для запуска программ.)
У вас должен быть внутри него файл-кабала. Вы можете создать его, выполнив команду 'cabal init' и выполнив следующие шаги. Вы можете перечислить свои зависимости пакета в поле с именем 'build-depends' в файле cabal. – Sibi
@Sibi Но я уже запускал 'cabal sandbox init'. Это не то же самое, что 'cabal init'? В шагах по этому учебнику не упоминается 'cabal init' - я попробую! Ха, это сработало! Не могли бы вы ответить на этот вопрос? – Zelphir
Вы можете установить отдельные пакеты с помощью 'cabal --require-sandbox install' в песочницу (при условии, что вы находитесь в правильной директории). Затем вы можете получить к ним доступ без кабального файла, используя 'cabal -require-sandbox repl'. Часть '--require-sandbox' может не всегда понадобиться, но если у вас нет файла .cabal, это ваша самая безопасная ставка. Очевидно, что '-dependencies' * не может * работать без файла .cabal - какие зависимости он должен искать? Я думаю, что для этого требуется довольно недавняя версия cabal. Вы не нуждаетесь в файле .cabal - его гораздо проще иметь. –
user2407038