Почему стек не добавляет пакеты в базу данных пакетов ghc?
Я решил попробовать дать стеку шанс. Я установил его и использовал для установки последней версии GHC. Я использовал стек для установки некоторых пакетов, но пакеты не видны ghc, и когда я перечисляю пакеты с помощью ghc-pkg, я вижу, что пакетов, которые я установил через стек, там нет. Почему это? Я неправильно понимаю цель стека?
1 ответ
Стек никогда не касается глобальной базы данных пакетов. Он использует многоуровневый подход к базе данных
- глобальная база данных - нетронутая
- пакеты в снимке стека устанавливаются в базу данных снимков
- другие пакеты устанавливаются локально для каждого проекта
Таким образом, вместо того, чтобы загрязнять глобальную базу данных, большинство пакетов устанавливаются в базы данных моментальных снимков, поэтому большинство пакетов могут быть общими. Поскольку пакеты в снимках стека совместимы (то есть всегда компилируются), мы не сталкиваемся с адом Кабала.
Ты можешь использовать stack ghci
или же stack ghc
выполнить соответствующие команды с настроенной базой данных пакетов.
Более точное объяснение есть в стеке вики