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?
5
A
Odpowiedz
7
Stos nigdy nie dotyka globalnej listy pakietów. Wykorzystuje podejścia warstwowego w bazie
- globalną bazę danych - nietkniętą
- pakiety w stackage migawce są instalowane w bazie danych snapshot
- 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