Почему при установке Aeson происходит сбой? - PullRequest
4 голосов
/ 20 сентября 2011

У меня есть две машины Arch (64), на которые я пытаюсь установить yesod.На первом простое «кабальное установление yesod» происходит великолепно.На втором я получаю следующую ошибку при построении нативной зависимости aesod:

Настройка aeson-native-0.3.3 ...
Библиотека предварительной обработки aeson-native-0.3.3...
Сборка aeson-native-0.3.3 ...
[1 из 6] Компиляция Data.Aeson.Functions (Data / Aeson / Functions.hs, dist / build / Data / Aeson / Functions.o)
[2 из 6] Компиляция Data.Aeson.Types (Data / Aeson / Types.hs, dist / build / Data / Aeson / Types.o)

Data / Aeson / Types.hs:196: 22:
Нет экземпляра для (NFData Object)
, возникающего в результате использования rnf'<br> Possible fix: add an instance declaration for (NFData Object)<br> In the expression: rnf o<br> In an equation for rnf ': rnf (Object o) = rnf o
В объявлении экземпляра для `NFData Value'
cabal: Ошибка: не удалось установить некоторые пакеты:
aeson-native-0.3.3 не удалось на этапе сборки.Исключением было:
ExitFailure 1

После описанного выше сбоя я установил новую версию ghc и удалил каталоги ghc-pkg и .cabal.Опять та же ошибка.Кажется, с Aeson-native нет ничего плохого, так как в других местах он работает нормально, поэтому моя среда должна быть как-то виновата.На машине с ошибкой я в прошлом экспериментировал с использованием pacman для управления случайными библиотеками (в основном для xmonad).Не уверен, что это должно иметь значение, но я никогда не был уверен, как / если Кабал и Пакман имеют какое-либо представление о том, что делают друг друга.

GHC - 7.0.3.Я сделал обновление Cabal до всех установок.Есть идеи, что может быть не так с этой средой?

Спасибо / O

Ответы [ 2 ]

5 голосов
/ 20 сентября 2011

Ты не одинок. Это должно быть в состоянии исправить:

> cabal install deepseq-1.1.0.2
> ghc-pkg unregister deepseq-1.2.0.1 --force

И тогда вы можете установить любой aeson пакет. Пожалуйста, проверьте, действительно ли вы установили deepseq-1.2.0.1, введя ghc-pkg list deepseq


У меня тоже была эта ошибка несколько дней назад, но для aeson не aeson-native. Я вытащил запрос на исправление fix на github, и он уже взломан, хотя, к сожалению, только для aeson, а не aeson-native. Могу ли я предложить вам попробовать запросить исправление пакета aeson-native. Очень приятно отдать что-то сообществу, попробуйте! :)

3 голосов
/ 20 сентября 2011

Object - это просто синоним типа для Data.Map, и похоже, что экземпляр NFData для Data.Map был недавно перемещен из пакета deepseq в containers.

Однако эта новая версия containers, по-видимому, еще не выпущена в Hackage, поэтому, поскольку вы используете последнюю версию deepseq, экземпляр не найден ни в одном из пакетов.

Я ожидаю, что это скоро будет исправлено.Тем временем вы должны иметь возможность понизить deepseq до версии 1.1.0.2, которая является последней версией до перемещения экземпляра.

...