Каковы отношения между GHC-PKG и Cabal?
Вопрос
Что касается того, как создаются пакеты, установлены и используемые в Haskell, каковы отношения между GHC-PKG. а также кабал?
Каковы их роли - когда вы бы использовали один, над другим, или используете оба?
Они дополнительные инструменты, конкурентные инструменты или просто инструменты, которые делают разные работы?
Решение
Графически зависимости являются:
Packages GHC can use
|
Are registered with "ghc-pkg register"
|
And (almost always) built with Cabal
|
With build dependencies resolved by cabal-install
|
From Hackage.
Другие советы
GHC-PKG. является прямым интерфейсом к базе данных пакета GHC. Cabal - это инструмент, который обеспечивает последовательную структуру распределения для упаковки и способа указать метаданные, такие как зависимости между пакетами, номерами версий и сбор данных.
Использование Cabal для установки пакета зарегистрирует его с GHC для вас (среди прочего), но это степень совпадения, правда.
Обратите внимание, что GHC-PKG также предоставляет функциональность, которые (насколько я знаю) Cabal не, например, скрытые установленные пакеты.