Ответ 1
Графически зависимости:
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.
Что касается создания пакетов, установленных и используемых в Haskell, какова связь между ghc-pkg и cabal?
Каковы их роли - когда вы используете один, другой или используете оба?
Являются ли они дополнительными инструментами, конкурентными инструментами или просто инструментами, которые выполняют разные задания?
Графически зависимости:
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 не выполняет, например, скрывает установленные пакеты.