Подтвердить что ты не робот

Какова связь между ghc-pkg и cabal?

Что касается создания пакетов, установленных и используемых в Haskell, какова связь между ghc-pkg и cabal?

Каковы их роли - когда вы используете один, другой или используете оба?

Являются ли они дополнительными инструментами, конкурентными инструментами или просто инструментами, которые выполняют разные задания?

4b9b3361

Ответ 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.

Ответ 2

ghc-pkg является прямым интерфейсом к базе данных пакетов GHC. Cabal - это инструмент, который обеспечивает согласованную структуру распределения для пакетов и способ указания метаданных, таких как зависимости между пакетами, номерами версий и информацией о сборке.

Использование Cabal для установки пакета зарегистрирует его с помощью ghc для вас (между прочим), но на самом деле степень перекрытия.

Обратите внимание, что ghc-pkg также предоставляет функциональные возможности, которые (насколько я знаю) Cabal не выполняет, например, скрывает установленные пакеты.