2015-11-25 18 views
8

si dovrebbe pensare che questo è un FAQ, ma non sono stati in grado di trovare una risposta a questa semplice domanda:Quale versione del pacchetto ho?

Quale versione di un certo pacchetto devo a mia installazione GHC?

Sfondo

Sto cercando di imparare Haskell, e per farlo, sto facendo la mia strada attraverso Real World Haskell. Ora ho raggiunto lo chapter 11, che, tra gli altri argomenti, introduce QuickCheck.

Sfortunatamente, QuickCheck è cambiato da quando il libro è stato pubblicato nel 2009 e sembra che sia stato sottoposto a varie revisioni. Ogni volta che cerco un nuovo modo di fare le cose, in alternativa alle istruzioni del libro, a volte i nuovi modi non funzionano. Forse il "nuovo modo" è stato descritto nel 2012, ma poi QuickCheck è cambiato di nuovo da allora a oggi.

In definitiva, dovrò capire come utilizzare QuickCheck dalla documentazione o dal codice sorgente, ma sarebbe estremamente utile sapere quale versione dovrei esaminare.

Non ho ancora raggiunto il punto in cui ho imparato a conoscere Cabal e così, quindi la mia domanda è radicata nella pura ignoranza. Speriamo, c'è una risposta facile.

Uso GHC su Windows e, apparentemente, QuickCheck è già incluso nella mia installazione. Ho già QuickCheck, ma non so quale versione.

+0

Questo può aiutare: http://stackoverflow.com/questions/2892586/how-can-my-haskell-program-or-library-find-its-version-number –

+3

\ * sigh \ *, un altro per [la lista] (http://stackoverflow.com/a/23733494/1139697). – Zeta

+2

@ shree.pat18 Questo non sembra utile per una libreria che è già installata (e che, come la maggior parte delle librerie, non espone il suo modulo 'Paths_ *'). –

risposta

6

Utilizzando cabal info

È possibile utilizzare cabal info <packagename> per ottenere informazioni sul pacchetto, compresa la versione attualmente installata:

 
$ 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 
        ... 

Quindi, tutto quello che dovete fare è grep le "versioni installate":

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

In Windows, è possibile utilizzare findstr:

Nota: Se non si dispone di <packagename> installato ma si desidera comunque conoscere alcune informazioni a riguardo, potrebbe essere necessario prima il cabal update.

Utilizzando ghc-pkg

Se non si dispone di cabal installato, è comunque possibile utilizzare il gestore di pacchetti di GHC, 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 

Si noti tuttavia che ghc-pkg non riconosceranno sandbox cabala:

$ 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) 

In questo caso, è necessario utilizzare ghc-pkg -f .\.cabal-sandbox\<platform>-packages.conf.d o 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 

Tuttavia, dal momento che si sta già utilizzando cabal, si può semplicemente utilizzare cabal info.

+2

Oppure, se non vuoi utilizzare 'cabal' (e stai usando' ghc'), puoi 'ghc-pkg list QuickCheck', che di default mostrerà solo i numeri di versione per i pacchetti installati. –

Problemi correlati