Переустановите поведение cabal-dev

Последняя установка кабалы, которую я использовал (0.13.3, из репозитория darcs), хороша; он позволяет узнать, когда вы можете сломать установку GHC при переустановке. Я хочу знать вот что: предположим, что cabal install foo выполнит переустановку, которая выведет из строя мой GHC. Что произойдет, если я cabal-dev install foo вместо этого? Смогу ли я избежать нарушения GHC? Могу ли я на самом деле использовать пакет foo в песочнице cabal-dev, или это будет просто сломанная песочница?

Пример: yesod, GHC 7.4.1, cabal-dev 0.9, собранный из исходного кода github, библиотека Cabal 1.14.0.


person Dan Burton    schedule 07.02.2012    source источник


Ответы (1)


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

Когда вы используете cabal-dev, все шаги установки cabal и шаги регистрации ghc-pkg выполняются в локальной изолированной программной среде. Ваши глобальные/пользовательские пакеты ghc вообще не затронуты. Поскольку вы обычно создаете одну песочницу Cabal-dev для каждого проекта, конфликтов, подобных описанным выше, обычно не происходит.

Чтобы перейти к вашему вопросу - это полностью зависит от того, что уже установлено в этой конкретной песочнице cabal-dev. Если бы не было конфликтов, ничего бы не сломалось. Если вы принудительно --reinstall, вам может потребоваться --reinstall любые пакеты в локальной изолированной программной среде cabal-dev, которые зависят от пакета, который вы только что переустановили.

В любом случае, ваша установка GHC не сломается (или не будет изменена каким-либо образом), и вы всегда можете rm -rf cabal-dev в папке вашего проекта и повторить cabal-dev install.

Надеюсь это поможет.

person ozataman    schedule 07.02.2012