Haskell 和 postgresql - 构建错误 "The program pg_config is required but it could not be found."
Haskell and postgresql - build error "The program pg_config is required but it could not be found."
我目前正在学习 haskell 并且刚刚尝试使用 postgresql 作为数据库。
我用堆栈生成了我的项目(stack new <name>
-> stack setup
-> stack build
)
然后我所做的改变就是将持久化和 postgresql 所需的依赖项添加到
package.yaml 文件(在 "dependencies:" 下)。
它们是:
- 坚持不懈
- persistent-postgresql
- 持久模板
然而,这会导致构建失败并显示以下消息:
postgresql-libpq > setup.exe: 程序 'pg_config' 是必需的,但找不到。
postgresql-libpq >
-- 在构建包 postgresql-libpq-0.9.4.2 时使用:
C:\Users\\AppData\Local\Temp\stack14388\postgresql-libpq-0.9.4.2.stack-work\dist\e626a42b\setup\setup --builddir=.stack-work\dist\e626a42b 配置--user --package-db=clear --package-db=global -- package-db=C:\sr\snapshots5a3dde\pkgdb --libdir=C:\sr\snapshots5a3dde\lib --bindir=C:\sr\snapshots5a3dde\bin --datadir=C:\sr\snapshots5a3dde\share --libexecdir=C: \sr\snapshots5a3dde\libexec --sysconfdir=C:\sr\snapshots5a3dde\etc --docdir=C:\sr\snapshots5a3dde\doc\postgresql-libpq-0.9.4.2 --htmldir=C:\sr\snapshots5a3dde\doc\postgresql-libpq-0.9.4.2 --haddockdir =C:\sr\snapshots5a3dde\doc\postgresql-libpq-0.9.4.2 --dependency=Cabal=Cabal-2.4.1.0-5rQrtDcYhR2LOcYye7obEr --dependency=Win32=Win32-2.6.1.0 --dependency=base=base-4.12.0.0 --dependency =bytestring=bytestring-0.10.8.2 -f-use-pkg-config --extra-include-dirs=C:\Users\\AppData\Local\Programs\stack\x86_64-windows\msys2-20180531\mingw64\include --extra-lib-dirs=C:\Users\\AppData\Local\Programs\stack\x86_64-windows\msys2-20180531\mingw64\lib --extra-lib-dirs=C:\Users\\AppData\Local\Programs\stack\x86_64-windows\msys2-20180531\mingw64\bin --exact-configuration --ghc-option=-fhide-source-paths
进程退出代码:ExitFailure 1
有谁知道如何解决这个问题以及它为什么会发生?
我是否必须安装 postgresql 才能 运行 构建项目?如果是这样,你会如何
在生产环境中这样做,当数据库基本上无处不在时?
看起来 Haskell 正在尝试使用 PostgreSQL 客户端共享库 libpq.dll
进行构建,并在构建时使用 pg_config
来确定 PostgreSQL 的安装位置和构建方式。
这意味着您必须在构建 Haskell 的机器上安装 PostgreSQL,包括头文件、构建环境或由安装程序调用的任何方式。
对于 运行 Haskell 你只需要 libpq.dll
和相关的共享库。
我使用以下命令解决了 Ubuntu 中的问题:
apt install libpq-dev
我目前正在学习 haskell 并且刚刚尝试使用 postgresql 作为数据库。
我用堆栈生成了我的项目(stack new <name>
-> stack setup
-> stack build
)
然后我所做的改变就是将持久化和 postgresql 所需的依赖项添加到
package.yaml 文件(在 "dependencies:" 下)。
它们是:
- 坚持不懈
- persistent-postgresql
- 持久模板
然而,这会导致构建失败并显示以下消息:
postgresql-libpq > setup.exe: 程序 'pg_config' 是必需的,但找不到。
postgresql-libpq >
-- 在构建包 postgresql-libpq-0.9.4.2 时使用:
C:\Users\\AppData\Local\Temp\stack14388\postgresql-libpq-0.9.4.2.stack-work\dist\e626a42b\setup\setup --builddir=.stack-work\dist\e626a42b 配置--user --package-db=clear --package-db=global -- package-db=C:\sr\snapshots5a3dde\pkgdb --libdir=C:\sr\snapshots5a3dde\lib --bindir=C:\sr\snapshots5a3dde\bin --datadir=C:\sr\snapshots5a3dde\share --libexecdir=C: \sr\snapshots5a3dde\libexec --sysconfdir=C:\sr\snapshots5a3dde\etc --docdir=C:\sr\snapshots5a3dde\doc\postgresql-libpq-0.9.4.2 --htmldir=C:\sr\snapshots5a3dde\doc\postgresql-libpq-0.9.4.2 --haddockdir =C:\sr\snapshots5a3dde\doc\postgresql-libpq-0.9.4.2 --dependency=Cabal=Cabal-2.4.1.0-5rQrtDcYhR2LOcYye7obEr --dependency=Win32=Win32-2.6.1.0 --dependency=base=base-4.12.0.0 --dependency =bytestring=bytestring-0.10.8.2 -f-use-pkg-config --extra-include-dirs=C:\Users\\AppData\Local\Programs\stack\x86_64-windows\msys2-20180531\mingw64\include --extra-lib-dirs=C:\Users\\AppData\Local\Programs\stack\x86_64-windows\msys2-20180531\mingw64\lib --extra-lib-dirs=C:\Users\\AppData\Local\Programs\stack\x86_64-windows\msys2-20180531\mingw64\bin --exact-configuration --ghc-option=-fhide-source-paths
进程退出代码:ExitFailure 1
有谁知道如何解决这个问题以及它为什么会发生?
我是否必须安装 postgresql 才能 运行 构建项目?如果是这样,你会如何
在生产环境中这样做,当数据库基本上无处不在时?
看起来 Haskell 正在尝试使用 PostgreSQL 客户端共享库 libpq.dll
进行构建,并在构建时使用 pg_config
来确定 PostgreSQL 的安装位置和构建方式。
这意味着您必须在构建 Haskell 的机器上安装 PostgreSQL,包括头文件、构建环境或由安装程序调用的任何方式。
对于 运行 Haskell 你只需要 libpq.dll
和相关的共享库。
我使用以下命令解决了 Ubuntu 中的问题:
apt install libpq-dev