Не удалось установить Даркс через Nix - PullRequest
0 голосов
/ 15 января 2019

Только начал работать с Nix (версия 2.2.1), и при установке darcs (версия 2.14.1) я столкнулся с первой проблемой: я получаю следующее сообщение об ошибке (с предшествующим стеком вызовов):

Setup: Encountered missing dependencies:
base >=4.9 && <4.12,
network >=2.6 && <2.8,
stm >=2.1 && <2.5,
zip-archive ==0.3.*

У меня установлен стек инструментов haskell, а также глобальный ghc (хотя я думаю, что для сборки дарков не нужно и того и другого).

У меня также не было проблем с установкой darcs с помощью 'apt'

Я делаю классическую ошибку новичка nix или что здесь происходит?

1 Ответ

0 голосов
/ 15 января 2019

Nix сильно отличается от менеджеров пакетов, таких как 'apt'. Производные (которые похожи на пакеты) предназначены для построения в изолированной среде, где деривация отвечает за предоставление своих собственных зависимостей путем ссылки на другие деривации. Из-за этого вам не нужно явно устанавливать что-либо для сборки пакета.

Обратите внимание, что хотя Nixpkgs использует библиотеку Cabal для сборки пакетов на Haskell, установка пакета через Nix сильно отличается от установки с помощью cabal-install. На самом деле он ближе к стеку, потому что Nixpkgs определяет его haskellPackages на основе стека и избегает разрешения зависимостей в стиле каббалы. Тем не менее, он позволяет использовать решатель Cabal, чтобы проверить, соответствуют ли зависимости версиям, указанным в файлах Cabal. Эту проверку можно отключить с помощью функции doJailbreak в Nixpkgs.

Я не думаю, что нам нужно вдаваться в детали упаковки Haskell в Nixpkgs, потому что вы должны быть в состоянии получить предварительно собранные дарки из канала nixos-18.09. Выражение Nix из nixos-unstable выдает именно ваше сообщение об ошибке.

Я рекомендую вам использовать канал последнего выпуска, nixos-18.09, потому что nixos-unstable будет регулярно выходить из строя. См. Руководство Nix по изменению конфигурации вашего канала.

...