无法安装带有阴谋集团的Haskell软件包



我在这里阅读了其他有阴谋集团问题的人的建议。我正在尝试安装随机和线性。对于线性,我得到一个错误,我需要分析版本库。

mbp:~ ad$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 9.2.1
mbp:~ ad$ 
mbp:~ ad$ cabal --version
cabal-install version 2.2.0.0
compiled using version 2.2.0.1 of the Cabal library 
mbp:~ ad$ cabal install random
Resolving dependencies...
In order, the following would be installed:
deepseq-1.4.6.1 (via: random-1.2.1 bytestring-0.11.1.0 splitmix-0.1.0.4) (new
version)
splitmix-0.1.0.4 (via: random-1.2.1) (new package)
bytestring-0.11.1.0 (latest: 0.11.2.0) (via: random-1.2.1) (reinstall)
(changes: deepseq-1.4.6.0 removed)
random-1.2.1 (new package)
cabal: The following packages are likely to be broken by the reinstalls:
unix-2.7.2.2
process-1.6.13.2
haskeline-0.8.2
ghc-9.2.1
Cabal-3.6.0.0
libiserv-9.2.1
ghci-9.2.1
directory-1.3.6.2
hpc-0.6.1.0
ghc-boot-9.2.1
text-1.2.5.0
parsec-3.1.14.0
ghc-compact-0.1.0.0
binary-0.8.9.0
Use --force-reinstalls if you want to install anyway.

Here is list of packages I have installed.
mbp:~ ad$ ghc-pkg list
/usr/local/lib/ghc-9.2.1/lib/package.conf.d
Cabal-3.6.0.0
array-0.5.4.0
base-4.16.0.0
binary-0.8.9.0
bytestring-0.11.1.0
containers-0.6.5.1
deepseq-1.4.6.0
directory-1.3.6.2
exceptions-0.10.4
filepath-1.4.2.1
ghc-9.2.1
ghc-bignum-1.2
ghc-boot-9.2.1
ghc-boot-th-9.2.1
ghc-compact-0.1.0.0
ghc-heap-9.2.1
ghc-prim-0.8.0
ghci-9.2.1
haskeline-0.8.2
hpc-0.6.1.0
integer-gmp-1.1
libiserv-9.2.1
mtl-2.2.2
parsec-3.1.14.0
pretty-1.1.3.6
process-1.6.13.2
rts-1.0.2
stm-2.5.0.0
template-haskell-2.18.0.0
terminfo-0.4.1.5
text-1.2.5.0
time-1.11.1.1
transformers-0.5.6.2
unix-2.7.2.2
xhtml-3000.2.2.1
/Users/ad/.local/share/ghc/x86_64-darwin-9.2.1/package.conf.d
(no packages)

我在这个文件中添加了一个参数来启用评测:~/.cabal/config

我运行了这个unix命令来重命名包数据库。

mbp:~ ad$ cabal update
Downloading the latest package list from hackage.haskell.org
To revert to previous state run:
cabal update --index-state='2021-12-12T14:49:14Z'
mbp:~ ad$ mv /usr/local/lib/ghc-9.2.1/lib/package.conf.d /usr/local/lib/ghc-9.2.1/lib/package.conf.d.backup
mbp:~ ad$ cabal install --reinstall world
ghc-9.2.1: can't find a package database at /usr/local/lib/ghc-9.2.1/lib/package.conf.d

它当然找不到package.conf.d,我只是把它重命名了;我想用进行编译所需的所有Haskell包重新创建它,并将随机和线性添加到包数据库中,并使所有这些包也与评测代码兼容。

有人能告诉我我需要做些什么才能做到这一点吗?

我建议的行动方案是:

  1. 还原已重命名的包数据库。

  2. 正如Daniel Wagner所建议的,升级到最新的cabal安装(截至目前为3.6.0.0(。cabal v2-install cabal-install应该足够了(它会为您的用户安装它(。在一个相关的注意事项上,考虑使用GHCup作为管理核心Haskell工具的一种方便方式。

  3. 为要评测的代码设置一个项目。正如leftaroundabout所指出的,使用cabal install3.x,管理依赖关系的自然方式是通过项目的配置指定您需要什么,并让cabal install来处理其余部分,而不是手动管理已安装的库。

  4. 通过cabal.project.local打开代码的评测。对于cabal install3.x,应该不需要通过全局配置(~/.cabal/config(来实现。另请参阅cabal.projectprofiling选项文档。

最新更新