2016-09-20 28 views
4

建立PostgreSQL相关的libpq增加PostgreSQL相关的libpq到我的项目的小集团文件后,栈建立失败,出现以下:哈斯克尔堆栈不会对Nixos

Configuring postgresql-libpq-0.9.1.1... 
setup: The program 'pg_config' is required but it could not be found. 

我在Nixos和pg_config既安装和我PATH:

$ whereis pg_config 
pg_config: /nix/store/5bc6hzqkyw8dpi91sqznd3ik42mllwyz-system-path/bin/pg_config 

我使用的堆栈1.0.2,并且它似乎不会更新即使nixos-rebuild开关 - 在不稳定通道上升级。这是我的错误吗?还是别的吗?

+0

我不熟悉Stack + Nix集成,但'stack exec whereis pg_config'找到'pg_config'位置吗? –

+0

@MichaelSnoyman我得到了“Executable named whereis not path on path”。打印的路径目录不包含我的系统路径,大多数程序都可以找到(包括* whereis *和* pg_config *)。 –

+1

这听起来像你已经在你的配置中启用nix,但没有指定必要的软件包。我不是一个nix用户,所以我不能提供进一步的建议,但[本文档](https://docs.haskellstack.org/en/stable/nix_integration/#the-nix-shell)似乎涵盖了主题。 –

回答

2

我在nixos上遇到了这个问题,并在我的stack.yaml的nix块已被更改为以下时通过它。

nix: 
    pure: true 
    enable: true 
    packages: [ postgresql ] 
1

我有同样的问题,并阅读Michael Snoyman链接的docs帮助我。您需要添加到您的stack.yaml:

nix: 
    enable: true 
    pure: false 

我是建设不归我的包,所以不是编辑特定项目的配置我添加的那些行我全球配置:~/.stack/config.yaml。另外,您也可以使用命令行选项:

stack --nix --no-nix-pure build

或者为“非纯”的身材,你应该能够指定nix-shell所有系统的依赖强制执行重复性,但我没有尝试。

+2

这很奇怪..设置'pure:false'根本没有帮助我..最后我把* postgresql *放在软件包列表中以使它工作.. –

+0

@MarceloZabani我遇到类似问题题。你添加了'postgresql'以使其工作? – mherzl

+1

@mherzl对不起,以前没有回答。不过,我猜你发现了哪里! –