2015-07-30 15 views
5

Obecnie używam GHC 7.10.1 na moim systemie Ubuntu 14.04, dopiero teraz dostałem uwagę z listy mailingowej, że została wydana nowa wersja zawierająca wiele poprawek. Więc rozważam aktualizację mojego GHC.Co muszę zrobić, jeśli chcę zainstalować nową wersję GHC?

Wiem, jak zainstalować GHC, jednak mam niewielką wiedzę o tym, jak radzić sobie z pakietami, które już zainstalowałem przez cabal. Wygląda na to, że te pakiety zostały zainstalowane pod ~/.cabal, na przykład biblioteki zostały zainstalowane w ~/.cabal/lib/x86_64-linux-ghc-7.10.1 i zarejestrowane w ~/.ghc/x86_64-linux-7.10.1.

Nazwa ścieżki (... x86_64-linux-7.10.1 ...) wydaje się sugerować, że mogą one być używane tylko przez GHC 7.10.1, więc jeśli chcę użyć nowej wersji GHC i usunąć starą ghc 7.10.1 z mojego systemu, czy powinienem je wyczyścić i ponownie zainstalować te pakiety?

na przykład, czy powinienem rm -rf ~/.cabal && rm -rf ~/.ghc i ponownie zainstalować zarówno cabal, jak i GHC? czy powinienem zostawić tam te paczki? jeśli tak, czy te zainstalowane pakiety zostaną ponownie wykorzystane przez nowy GHC?

+0

Czy zainstalowałeś GHC ręcznie, czy korzystałeś z pakietów [hvr's] (https://launchpad.net/~hvr/+archive/ubuntu/ghc)? Tak czy inaczej, biorąc pod uwagę, że [7.10.2 naprawia wiele błędów] (https://downloads.haskell.org/~ghc/7.10.2/docs/html/users_guide/release-7-10-2.html) i dostarcza nowe wersje bibliotek (binarne i bazowe), prawdopodobnie lepiej jest usunąć '~/.cabal' i' ~/.ghc'. – Zeta

+0

@Zeta Zainstalowałem ręcznie ... – Alaya

Odpowiedz

2

Tak, należy ponownie zainstalować pakiety po aktualizacji kompilatora.

Jeśli jednak usuniesz ~/.ghc, to spowoduje to usunięcie pakietów z punktu widzenia GHC. Możesz także usunąć ~/.cabal i ponownie zainstalować wszystko, ale pliki binarne w wersji ~/.cabal/bin (w tym cabal) zazwyczaj będą działać, więc często łatwiej jest je zachować i zaoszczędzić trochę czasu (zobacz, co tam jest). Z niektórymi problemami mogą się zdarzyć - myślę, że niektóre pliki binarne mogą mieć wewnętrznie zakodowaną ścieżkę GHC, więc ulegną uszkodzeniu, ale zawsze można je ponownie zainstalować.

~/.cabal/packages zawiera buforowane pliki do pobrania, więc to zależy od Ciebie, czy to usuniesz. Dane zostaną ponownie rozebrane następnym razem, gdy przejdziesz do cabal. W razie wątpliwości po prostu go usuń.

Należy usunąć , który zawiera skompilowane pakiety i nie będzie zgodny z innym GHC. Podobnie dla ~/.cabal/share.

Jeśli nie edytowałeś ręcznie pliku ~/.cabal/config i chcesz zachować te zmiany, możesz je usunąć, a nowy zostanie utworzony.

2

Nie musisz potrzebujesz, aby usunąć wszystko. Jeśli zainstalujesz GHC 7.10.2 w tym samym miejscu, w którym zainstalowałeś GHC 7.10.1, wszystkie dowiązania symboliczne zostaną dodane do 7.10.2, ale nadal możesz uruchomić wersjonowane programy ghc-7.10.1, ghci-7.10.1, ghc-pkg-7.10.1 itd. Lub powiedz cabal, aby zbudować z określonym kompilatorem z flagą -w. Wszystkie biblioteki i informacje rejestracyjne biblioteki (niezależnie od tego, czy pochodzą z GHC, są instalowane w bazie danych pakietów użytkowników, czy są w piaskownicy) są (domyślnie) przechowywane w podfolderach specyficznych dla wersji GHC, więc różne wersje GHC nie będą zakłócać każdego z nich. inny.

Jeśli nie masz zbyt mało miejsca na dysku, sugeruję nie usuwanie GHC 7.10.1. Po wydaniu wszystkich 7.10.2 zaledwie wczoraj, a jeśli napotkasz dziwny problem z 7.10.2, warto sprawdzić, czy 7.10.1 również został naruszony.

Powiązane problemy