2015-11-25 12 views
8

Trzeba myśleć, że jest to FAQ, ale nie udało się znaleźć odpowiedź na to proste pytanie:Którą wersję pakietu mam?

Która wersja danego pakietu mam w mojej instalacji GHC?

Tło

Próbuję dowiedzieć się Haskell, w tym celu, robię moją drogę przez Real World Haskell. Dotarłem do chapter 11, która między innymi wprowadza QuickCheck.

Niestety, poprawka QuickCheck uległa zmianie od czasu wydania książki w 2009 roku i wygląda na to, że została poddana różnym wersjom. Ilekroć szukam nowego sposobu robienia rzeczy, jako alternatywy dla instrukcji w książce, nowe sposoby czasami też nie działają. Być może "nowa droga" została opisana w 2012 roku, ale potem QuickCheck zmieniła się jeszcze raz od tamtej pory.

W końcu, będę musiał dowiedzieć się, jak korzystać z QuickCheck z dokumentacji lub kodu źródłowego, ale byłoby niezwykle pomocne, aby wiedzieć, którą wersję powinienem zbadać.

Jeszcze nie osiągnąłem punktu, w którym dowiedziałem się o Cabal i takie, więc moje pytanie jest oparte na czystej ignorancji. Mamy nadzieję, że istnieje łatwa odpowiedź.

Używam GHC w systemie Windows i najwidoczniej QuickCheck jest już dołączony do mojej instalacji. Mam już QuickCheck, ale nie wiem, którą wersję.

+0

Może to pomóc: http://stackoverflow.com/questions/2892586/how-can-my-haskell-program-lub-library-find-its-version-number –

+3

\ * sigh \ *, kolejny dla [lista] (http://stackoverflow.com/a/23733494/1139697). – Zeta

+2

@ shree.pat18 To nie wydaje się przydatne dla biblioteki, która jest już zainstalowana (i która, jak większość bibliotek, nie eksponuje swojego modułu 'Paths_ *'). –

Odpowiedz

6

Korzystanie cabal info

Można użyć cabal info <packagename>, aby uzyskać informacje na temat pakietu, w tym aktualnie zainstalowanej wersji:

 
$ cabal info QuickCheck 
* QuickCheck  (library) 
    Synopsis:  Automatic testing of Haskell programs 
    Versions available: 1.1.0.0, 1.2.0.0, 1.2.0.1, 2.6, 2.7.4, 2.7.5, 2.7.6, 
         2.8, 2.8.1 (and 24 others) 
    Versions installed: 2.8.1 
    Homepage:  https://github.com/nick8325/quickcheck 
    Bug reports: mailto:[email protected] 
    Description: QuickCheck is a library for random testing of program 
        properties. 

        The programmer provides a specification of the program, in 
        the form of properties which functions should satisfy, and 
        ... 

Więc wszystko co musisz zrobić, to grep z "wersje zainstalowanych":

$ cabal info QuickCheck | grep "Versions installed" 
Versions installed: 2.8.1 

W systemie Windows można użyć findstr:

$ cabal info QuickCheck | findstr /C:"Versions installed" 
Versions installed: 2.8.1 

Uwaga: jeśli nie masz zainstalowanego <packagename>, ale nadal chcesz uzyskać informacje na jego temat, być może najpierw musisz uzyskać numer cabal update.

Korzystanie ghc-pkg

Jeśli nie masz cabal zainstalowany, można nadal korzystać z menedżera pakietów, GHC za ghc-pkg:

$ ghc-pkg list QuickCheck 
C:\Program Files\MinGHC-7.8.4\ghc-7.8.4\lib\package.conf.d: 
    QuickCheck-2.8.1 

jednak pamiętać, że ghc-pkg nie potwierdzi Cabal Piaskownice:

$ cabal sandbox init 
$ cabal install QuickCheck 
$ ghc-pkg list QuickCheck 
C:\Program Files\MinGHC-7.8.4\ghc-7.8.4\lib\package.conf.d: 
    (no packages) 

W takim przypadku należy użyć ghc-pkg -f .\.cabal-sandbox\<platform>-packages.conf.d lub cabal exec:

$ ghc-pkg -f .\.cabal-sandbox\x86_64-windows-ghc-7.8.4-packages.conf.d list QuickCheck 
.\.cabal-sandbox\x86_64-windows-ghc-7.8.4-packages.conf.d: 
    QuickCheck-2.8.1 

$ cabal exec -- ghc-pkg list QuickCheck 
.\.cabal-sandbox\x86_64-windows-ghc-7.8.4-packages.conf.d: 
    QuickCheck-2.8.1 

Jednakże, ponieważ używasz już cabal, można po prostu użyć cabal info.

+2

Lub, jeśli nie chcesz przechodzić przez 'cabal' (i używasz' ghc'), możesz 'ghc-pkg list QuickCheck', która domyślnie wyświetla numery wersji tylko dla zainstalowanych pakietów. –

Powiązane problemy