Как установить пакеты / библиотеки без Cabal или Cabal-Install?

Я пытаюсь настроить Haskell с нуля на Ubuntu 11.04, не используя устаревший репозиторий Debian или Haskell-Platform.

Я без проблем установил GHC-7.0.4 из исходного кода, и теперь мне нужно установить Cabal (который, похоже, уже включен в GHC в /usr/local/lib/ghc-7.0.4/Cabal-1.10.2.0) и Cabal Install.

Последний определяет несколько зависимостей (parsec и network), каждая из которых имеет несколько собственных зависимостей (mtl, text и т. Д.).

Какая команда устанавливает эти пакеты, которые я скачал с сайта hackage в форме tar.gz?

Распаковать, то runhaskell не работает.

Я вижу Setup.lhs, но непонятно, для чего он нужен и как его использовать.

Большая часть документации Haskell, которую я нашел, предполагает, что вы установили из репозитория или Haskell-Package, и не очень хорошо это объясняет.


person Kurtosis    schedule 17.11.2011    source источник


Ответы (2)


cabal-install имеет сценарий оболочки, который делает это. Если вы скачаете его с сайта hackage и установите его, вы можете начать bootstrap.sh установить cabal-install. Затем вы можете использовать его для установки других пакетов.

person Erik Hesselink    schedule 17.11.2011
comment
Спасибо, я знал об этом, но от RWH показалось, что вам сначала нужно установить parsec и сеть (book.realworldhaskell.org/read/) и из документации HTTP, установленной первым, прежде чем вы сможете запустить bootstrap.sh. Теперь я вижу, что bootstrap.sh делает все это за вас. Вот что я получаю за то, что делаю это в 3 часа ночи. - person Kurtosis; 17.11.2011

Есть два разных пакета: Cabal и cabal-install. Cabal - это библиотека, а cabal-install - это исполняемый файл с именем cabal.

Чтобы установить пакет, cabal-install - это дополнительная удобная оболочка для Cabal, но Cabal требуется.

Согласно http://hackage.haskell.org/trac/ghc/wiki/Commentary/Libraries, Cabal - это пакет с нулевой загрузкой, поэтому при сборке GHC Cabal и его зависимости создаются автоматически.

Вы можете использовать исполняемый файл ghc-pkg, чтобы проверить, какие пакеты уже установлены:

# ghc-pkg list

После сборки GHC проверьте, есть ли Кабал в списке. Если да, вы можете установить больше пакетов без cabal-install, используя эту документацию:

http://haskell.org/haskellwiki/Cabal/How_to_install_a_Cabal_package

Я предлагаю вам сначала установить cabal-install, а затем установить все остальное, используя cabal-install исполняемый файл. Обычная команда для глобальной установки такая:

# runhaskell Setup configure
# runhaskell Setup build
# sudo runhaskell Setup install

Распакуйте архив пакета и выполните команды в папке с Setup.hs или Setup.lhs файлами. Обратите внимание, что также поддерживается установка для каждого пользователя без полномочий root - используйте runhaskell Setup configure --user

Когда вы устанавливаете исполняемый файл cabal и его зависимости таким образом, используйте cabal install {package-name} для установки дополнительных пакетов.

Обратите внимание, что платформа Haskell существует в основном из-за боли, связанной с самостоятельной установкой cabal-install.

person nponeccop    schedule 17.11.2011
comment
Спасибо, я вижу, что неправильно использовал программу установки runhaskell. В 3 часа ночи не работают все цилиндры. Очень признателен! - person Kurtosis; 17.11.2011