安装自定义版本的 Cabal 并将其用于堆栈
Installing a customized version of Cabal and use it for stack
我正在尝试针对自定义版本的 Cabal 构建堆栈。为此,我首先尝试通过 cabal install --project-file=cabal.project.release --lib Cabal
从修改后的 git 树中安装我的自定义 Cabal 版本,生成以下修剪输出:
[...]
Resolving dependencies...
Build profile: -w ghc-8.10.5 -O1
In order, the following will be built (use -v for more details):
- Cabal-3.7.0.0 (lib) (requires build)
Starting Cabal-3.7.0.0 (lib)
Building Cabal-3.7.0.0 (lib)
Installing Cabal-3.7.0.0 (lib)
Completed Cabal-3.7.0.0 (lib)
后来我尝试安装堆栈。然而,在构建时我发现我的旧系统 Cabal 版本 3.2.1.0 而不是我修改后的版本 3.7.0.0 使用:
[...]
stack > configure (lib + exe)
[1 of 2] Compiling Main ( /home/max/stack/Setup.hs, /home/max/stack/.stack-work/dist/x86_64-linux/Cabal-3.2.1.0/setup/Main.o )
[2 of 2] Compiling StackSetupShim ( /home/max/.stack/setup-exe-src/setup-shim-mPHDZzAJ.hs, /home/max/stack/.stack-work/dist/x86_64-linux/Cabal-3.2.1.0/setup/StackSetupShim.o )
Linking /home/max/stack/.stack-work/dist/x86_64-linux/Cabal-3.2.1.0/setup/setup ...
Configuring stack-2.7.4...
查找我的 cabal 版本给出:
$ cabal list --installed Cabal
* Cabal
Synopsis: A framework for packaging Haskell software
Default available version: 3.6.2.0
Installed versions: 3.2.1.0
Homepage: http://www.haskell.org/cabal/
License: BSD3
看来我修改后的Cabal 3.7.0.0版本没有安装成功。有什么方法可以安装自定义的 Cabal 库并在不同的项目中使用它,例如在构建堆栈时?
如@sjakobi 所述,解决方案是将 extra-deps
添加到堆栈 yaml 文件并使用堆栈构建自身。
我正在尝试针对自定义版本的 Cabal 构建堆栈。为此,我首先尝试通过 cabal install --project-file=cabal.project.release --lib Cabal
从修改后的 git 树中安装我的自定义 Cabal 版本,生成以下修剪输出:
[...]
Resolving dependencies...
Build profile: -w ghc-8.10.5 -O1
In order, the following will be built (use -v for more details):
- Cabal-3.7.0.0 (lib) (requires build)
Starting Cabal-3.7.0.0 (lib)
Building Cabal-3.7.0.0 (lib)
Installing Cabal-3.7.0.0 (lib)
Completed Cabal-3.7.0.0 (lib)
后来我尝试安装堆栈。然而,在构建时我发现我的旧系统 Cabal 版本 3.2.1.0 而不是我修改后的版本 3.7.0.0 使用:
[...]
stack > configure (lib + exe)
[1 of 2] Compiling Main ( /home/max/stack/Setup.hs, /home/max/stack/.stack-work/dist/x86_64-linux/Cabal-3.2.1.0/setup/Main.o )
[2 of 2] Compiling StackSetupShim ( /home/max/.stack/setup-exe-src/setup-shim-mPHDZzAJ.hs, /home/max/stack/.stack-work/dist/x86_64-linux/Cabal-3.2.1.0/setup/StackSetupShim.o )
Linking /home/max/stack/.stack-work/dist/x86_64-linux/Cabal-3.2.1.0/setup/setup ...
Configuring stack-2.7.4...
查找我的 cabal 版本给出:
$ cabal list --installed Cabal
* Cabal
Synopsis: A framework for packaging Haskell software
Default available version: 3.6.2.0
Installed versions: 3.2.1.0
Homepage: http://www.haskell.org/cabal/
License: BSD3
看来我修改后的Cabal 3.7.0.0版本没有安装成功。有什么方法可以安装自定义的 Cabal 库并在不同的项目中使用它,例如在构建堆栈时?
如@sjakobi 所述,解决方案是将 extra-deps
添加到堆栈 yaml 文件并使用堆栈构建自身。