Переустановите поведение cabal-dev - PullRequest
1 голос
/ 07 февраля 2012

Последняя установка cabal, которую я использовал (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.

1 Ответ

5 голосов
/ 07 февраля 2012

Просто чтобы уточнить, если я вас правильно понимаю, вы ни в коем случае не нарушаете 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.

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

...