Почему стек не добавляет пакеты в базу данных пакетов ghc?

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

1 ответ

Решение

Стек никогда не касается глобальной базы данных пакетов. Он использует многоуровневый подход к базе данных

  1. глобальная база данных - нетронутая
  2. пакеты в снимке стека устанавливаются в базу данных снимков
  3. другие пакеты устанавливаются локально для каждого проекта

Таким образом, вместо того, чтобы загрязнять глобальную базу данных, большинство пакетов устанавливаются в базы данных моментальных снимков, поэтому большинство пакетов могут быть общими. Поскольку пакеты в снимках стека совместимы (то есть всегда компилируются), мы не сталкиваемся с адом Кабала.

Ты можешь использовать stack ghci или же stack ghc выполнить соответствующие команды с настроенной базой данных пакетов.

Более точное объяснение есть в стеке вики

Другие вопросы по тегам