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

Най-новата инсталация на cabal, която използвах (0.13.3, от darcs repo) е хубава; той ви уведомява кога може да прекъснете вашата 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 обикновено решава този проблем, макар и по наистина болезнен начин.

Когато използвате cabal-dev, всички стъпки за инсталиране на cabal и стъпки за регистриране на ghc-pkg се извършват в локална среда на пясъчник. Вашите глобални/потребителски ghc пакети изобщо не се пипат. Тъй като обикновено създавате един екземпляр на cabal-dev sandbox на проект, сблъсъци като описаните по-горе обикновено не се случват.

За да стигна до въпроса ви - зависи изцяло от това, което вече е инсталирано в този конкретен пясъчник на cabal-dev. Ако няма конфликти, това няма да наруши нищо. Ако налагате --reinstall, може да се наложи да --reinstall всички пакети в локалната пясъчна среда на cabal-dev, които зависят от пакета, който току-що сте преинсталирали.

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

Надявам се това да помогне.

person ozataman    schedule 07.02.2012