我有哪个软件包版本?
Which package version do I have?
人们应该认为这是一个常见问题解答,但我一直无法找到这个简单问题的答案:
我的 GHC 安装中有哪个版本的包?
背景
我正在努力学习 Haskell,为了做到这一点,我正在学习 Real World Haskell. I've now reached chapter 11,其中介绍了 QuickCheck。
遗憾的是,自从 2009 年本书出版以来,QuickCheck 发生了变化,似乎经历了各种修改。每当我寻找一种新的做事方式来替代书中的说明时,新方法有时也行不通。也许 'new way' 是在 2012 年描述的,但从那时到现在,QuickCheck 又发生了变化。
最终,我将不得不从文档或源代码中弄清楚如何使用 QuickCheck,但了解我应该研究哪个版本会非常有帮助。
我还没有达到了解 Cabal 之类的程度,所以我的问题完全基于无知。希望有一个简单的答案。
我在 Windows 上使用 GHC,显然,QuickCheck 已经捆绑到我的安装中。我已经有 QuickCheck,但我不知道是哪个版本。
使用cabal info
您可以使用 cabal info <packagename>
获取有关软件包的信息,包括当前安装的版本:
$ 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:quickcheck@projects.haskell.org
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
...
所以你所要做的就是 grep
"Versions installed":
$ cabal info QuickCheck | grep "Versions installed"
Versions installed: 2.8.1
在 Windows 上,您可以使用 findstr:
$ cabal info QuickCheck | findstr /C:"Versions installed"
Versions installed: 2.8.1
备注:如果您还没有安装<packagename>
但仍想了解它的一些信息,您可能需要先cabal update
。
使用ghc-pkg
如果你没有安装cabal
,你仍然可以使用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
但是,请注意 ghc-pkg
不会承认 cabal 沙箱:
$ 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)
在这种情况下,您需要使用ghc-pkg -f .\.cabal-sandbox\<platform>-packages.conf.d
或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
但是,由于您已经在使用 cabal
,您可以简单地使用 cabal info
。
使用堆栈:
stack exec -- ghc-pkg list
示例:
% stack exec -- ghc-pkg list | grep aeson
aeson-0.11.3.0
aeson-pretty-0.8.8
如果您在 ghci
内部工作,您可以使用 :show packages
:
λ> :show packages
active package flags:
-package-id base-4.13.0.0
人们应该认为这是一个常见问题解答,但我一直无法找到这个简单问题的答案:
我的 GHC 安装中有哪个版本的包?
背景
我正在努力学习 Haskell,为了做到这一点,我正在学习 Real World Haskell. I've now reached chapter 11,其中介绍了 QuickCheck。
遗憾的是,自从 2009 年本书出版以来,QuickCheck 发生了变化,似乎经历了各种修改。每当我寻找一种新的做事方式来替代书中的说明时,新方法有时也行不通。也许 'new way' 是在 2012 年描述的,但从那时到现在,QuickCheck 又发生了变化。
最终,我将不得不从文档或源代码中弄清楚如何使用 QuickCheck,但了解我应该研究哪个版本会非常有帮助。
我还没有达到了解 Cabal 之类的程度,所以我的问题完全基于无知。希望有一个简单的答案。
我在 Windows 上使用 GHC,显然,QuickCheck 已经捆绑到我的安装中。我已经有 QuickCheck,但我不知道是哪个版本。
使用cabal info
您可以使用 cabal info <packagename>
获取有关软件包的信息,包括当前安装的版本:
$ 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:quickcheck@projects.haskell.org 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 ...
所以你所要做的就是 grep
"Versions installed":
$ cabal info QuickCheck | grep "Versions installed"
Versions installed: 2.8.1
在 Windows 上,您可以使用 findstr:
$ cabal info QuickCheck | findstr /C:"Versions installed"
Versions installed: 2.8.1
备注:如果您还没有安装<packagename>
但仍想了解它的一些信息,您可能需要先cabal update
。
使用ghc-pkg
如果你没有安装cabal
,你仍然可以使用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
但是,请注意 ghc-pkg
不会承认 cabal 沙箱:
$ 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)
在这种情况下,您需要使用ghc-pkg -f .\.cabal-sandbox\<platform>-packages.conf.d
或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
但是,由于您已经在使用 cabal
,您可以简单地使用 cabal info
。
使用堆栈:
stack exec -- ghc-pkg list
示例:
% stack exec -- ghc-pkg list | grep aeson
aeson-0.11.3.0
aeson-pretty-0.8.8
如果您在 ghci
内部工作,您可以使用 :show packages
:
λ> :show packages
active package flags:
-package-id base-4.13.0.0