2016-09-20 10 views
4

После добавления PostGreSQL-libpq в Кабал файл моего проекта, стек строить терпит неудачу со следующим:Haskell Стек не строит 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 будет установлен и на моем пути:

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

Я использую стек 1.0.2, и кажется, что он не будет обновляться даже после того, как nixos-rebuild switch - доп. на нестабильном канале. Это ошибка на моей стороне или это что-то еще?

+0

Я не знаком с интеграцией Stack + Nix, но выполняет ли 'stack exec whereis pg_config' поиск местоположения' pg_config'? –

+0

@MichaelSnoyman Я получаю «Исполняемый с именем whereis not found on path». Печатные каталоги путей не содержат мой системный путь, где большинство программ должно быть найдено (включая * whereis * и * pg_config *). –

+1

Похоже, вы включили nix в свой конфиг, но не указали необходимые пакеты. Я не пользователь nix, поэтому я не могу советовать дальше, но [эта документация] (https://docs.haskellstack.org/en/stable/nix_integration/#the-nix-shell), похоже, охватывает тему , –

ответ

2

Я столкнулся с этой проблемой со стеклом на nixos и прошел мимо нее, когда блок nix моего stack.yaml был изменен на следующее.

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

У меня была такая же проблема, и чтение 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 жаль, что не ответил ранее. Я думаю, вы узнали, где, хотя! –

 Смежные вопросы

  • Нет связанных вопросов^_^