我正在尝试让 Stack 在 Arch 系统上运行。我做了通常的:
pacman -S ghc stack cabal-install
然后把下面的放在~/.stack/config.yaml
里,这样就可以使用系统GHC和动态库了(上面的包不包括静态库):
system-ghc: true
ghc-options:
"$everything": -dynamic
configure-options:
"$everything":
- -dynamic
但是当我尝试安装某些东西时,(即 stack install wai
)我看到它试图构建自定义安装脚本:
/usr/bin/ghc-8.6.5 -rtsopts -threaded -clear-package-db -global-package-db -hide-all-packages -package base -main-is StackSetupShim.mainOverride -package Cabal-2.4.0.1 /home/alba/.stack/setup-exe-src/setup-mPHDZzAJ.hs /home/alba/.stack/setup-exe-src/setup-shim-mPHDZzAJ.hs -o /home/alba/.stack/setup-exe-cache/x86_64-linux/tmp-Cabal-simple_mPHDZzAJ_2.4.0.1_ghc-8.6.5
而且我的选项没有被接受,所以构建尝试使用静态库(但失败了)。有什么方法可以让 Stack/Cabal 在构建 Setup.hs
时使用某些选项?
最佳答案
编辑:我发现了相关问题;这似乎是不可能的:
stack: Can't use system GHC without static libraries at all (#3409) 强>
cabal: executable-dynamic: True
should apply to build-type: Custom
setup #1720
相关:在某些情况下,cabal 似乎总是会尝试构建静态 + 动态,即使您另有说明也是如此。
目前,我最终使用的部分解决方案是使用包装器强制该选项。
在 ~/.local/bin/ghc-8.6.5 放:
#!/bin/sh
exec /usr/bin/ghc-8.6.5 -dynamic "$@"
然后:
cd ~/.local/bin
chmod +x ghc-8.6.5
ln -s ghc{-8.6.5,}
ln -s {/usr/bin,.}/ghc-pkg-8.6.5
ln -s {/usr/bin,.}/runghc-8.6.5
ln -s {/usr/bin,.}/haddock-ghc-8.6.5
确保它在您的 PATH 中,您就可以开始了。
https://stackoverflow.com/questions/58559840/
相关文章:
python-3.x - 模块错误 : Rasterio has no attribute open
amazon-web-services - Cloudwatch 中未显示 Cognito 的指标
postgresql - 通过 EC2 从 sqlalchemy 连接 AWS RDS
javascript - 如何使用 yarn 将 NodeJS/React 应用程序部署到 Hero
azure-devops - "kubeconfig"选项的 Azure Devops kubern
django - 重定向到 Django Admin 中的过滤列表