查找 Haskell 可执行文件的库依赖版本
Find library dependency version of Haskell executable
假设我有一个由 ghc 生成的可执行文件。现在我想知道
它是用哪个版本的特定库构建的(比如哪个
base/< insert other library here > 的版本是用 ?) ?
能找到吗?
一个更具体的问题 - 我想知道 Cabal
的哪个版本
我的 stack
可执行文件使用库。
感谢来自#haskell irc 的@ongy 的回答。
我可以使用 GNU 的 strings
实用程序来查找信息。寻找
我的堆栈可执行文件正在使用哪个版本的 Cabal
,我可以这样做:
strings ~/.local/bin/stack | grep -i Cabal-
那会吐出一大串,我能找到这一段
里面的信息:
/tmp/stack-upgrade7565/stack/.stack-work/install/x86_64-linux/lts-6.14/7.10.3/lib/x86_64-linux-ghc-7.10.3/stack-1.2.1-IEWywJcSJuzIIEqkeEd87k:/home/sibi/.stack/snapshots/x86_64-linux/lts-6.17/7.10.3/lib/x86_64-linux-ghc-7.10.3/Cabal-1.22.8.0-Ku2CIqstfjg7Z2SNHUypWH:/home/sibi/.stack/snapshots/x86_64-linux/lts-6.14/7.10.3/lib/x86_64-linux-ghc-7.10.3/Glob-0.7.11-0WpLeizIORG0eUMRaKlYmO:/home/sibi/.stack/snapshots/x86_64-linux/lts-6.14/7.10.3/lib/x86_64-li....
而且我可以在其中看到 Cabal-1.22.8.0
。
要查找base
库版本,您可以
executable +RTS --info
将从中吐出 ghc 版本
我们可以找到基地。示例:
$ stack +RTS --info
[("GHC RTS", "YES")
,("GHC version", "7.10.3")
,("RTS way", "rts_thr")
,("Build platform", "x86_64-unknown-linux")
,("Build architecture", "x86_64")
,("Build OS", "linux")
,("Build vendor", "unknown")
,("Host platform", "x86_64-unknown-linux")
,("Host architecture", "x86_64")
,("Host OS", "linux")
,("Host vendor", "unknown")
,("Target platform", "x86_64-unknown-linux")
,("Target architecture", "x86_64")
,("Target OS", "linux")
,("Target vendor", "unknown")
,("Word size", "64")
,("Compiler unregisterised", "NO")
,("Tables next to code", "YES")
]
感谢@MarcelineVQ 的上述提示。
假设我有一个由 ghc 生成的可执行文件。现在我想知道 它是用哪个版本的特定库构建的(比如哪个 base/< insert other library here > 的版本是用 ?) ?
能找到吗?
一个更具体的问题 - 我想知道 Cabal
的哪个版本
我的 stack
可执行文件使用库。
感谢来自#haskell irc 的@ongy 的回答。
我可以使用 GNU 的 strings
实用程序来查找信息。寻找
我的堆栈可执行文件正在使用哪个版本的 Cabal
,我可以这样做:
strings ~/.local/bin/stack | grep -i Cabal-
那会吐出一大串,我能找到这一段 里面的信息:
/tmp/stack-upgrade7565/stack/.stack-work/install/x86_64-linux/lts-6.14/7.10.3/lib/x86_64-linux-ghc-7.10.3/stack-1.2.1-IEWywJcSJuzIIEqkeEd87k:/home/sibi/.stack/snapshots/x86_64-linux/lts-6.17/7.10.3/lib/x86_64-linux-ghc-7.10.3/Cabal-1.22.8.0-Ku2CIqstfjg7Z2SNHUypWH:/home/sibi/.stack/snapshots/x86_64-linux/lts-6.14/7.10.3/lib/x86_64-linux-ghc-7.10.3/Glob-0.7.11-0WpLeizIORG0eUMRaKlYmO:/home/sibi/.stack/snapshots/x86_64-linux/lts-6.14/7.10.3/lib/x86_64-li....
而且我可以在其中看到 Cabal-1.22.8.0
。
要查找base
库版本,您可以
executable +RTS --info
将从中吐出 ghc 版本
我们可以找到基地。示例:
$ stack +RTS --info
[("GHC RTS", "YES")
,("GHC version", "7.10.3")
,("RTS way", "rts_thr")
,("Build platform", "x86_64-unknown-linux")
,("Build architecture", "x86_64")
,("Build OS", "linux")
,("Build vendor", "unknown")
,("Host platform", "x86_64-unknown-linux")
,("Host architecture", "x86_64")
,("Host OS", "linux")
,("Host vendor", "unknown")
,("Target platform", "x86_64-unknown-linux")
,("Target architecture", "x86_64")
,("Target OS", "linux")
,("Target vendor", "unknown")
,("Word size", "64")
,("Compiler unregisterised", "NO")
,("Tables next to code", "YES")
]
感谢@MarcelineVQ 的上述提示。