2015-07-13 19 views
5

Postanowiłem spróbować dać stosowi strzał. Zainstalowałem go i użyłem do zainstalowania najnowszej wersji ghc. Użyłem stosu do zainstalowania niektórych pakietów, ale paczki nie są widoczne dla ghc, a kiedy wypisuję pakiety z ghc-pkg, widzę, że pakietów, które zainstalowałem przez stos, nie ma. Dlaczego to? Czy nie rozumiem przeznaczenia stosu?Dlaczego nie stosować dodatkowych pakietów do bazy danych pakietu GHC?

Odpowiedz

7

Stos nigdy nie dotyka globalnej listy pakietów. Wykorzystuje podejścia warstwowego w bazie

  1. globalną bazę danych - nietkniętą
  2. pakiety w stackage migawce są instalowane w bazie danych snapshot
  3. inne pakiety są zainstalowane lokalnie na projekt

Zatem zamiast zanieczyszczających globalną bazę danych , większość pakietów jest instalowanych w migawkowych bazach danych, więc większość pakietów może być współużytkowana. Ponieważ pakiety w ułożonych migawkach są zgodne (tzn. Zawsze kompilują się razem), nie natrafiamy na Cabal hell.

Możesz użyć stack ghci lub stack ghc, aby uruchomić odpowiednie komendy z skonfigurowaną bazą danych pakietów.

Bardziej precyzyjne wyjaśnienie znajduje się w stack wiki