2012-02-07 3 views
1

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

Example: yesod, GHC 7.4.1, cabal-dev 0.9 построено из источника github, Cabal 1.14.0 библиотека.

ответ

5

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

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

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

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

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

Смежные вопросы