Haskell: невозможно установить OpenGL из-за отсутствия зависимостей (которые там уже установлены)

Я пытаюсь установить пакет OpenGL-2.4.0.2 вручную, но после того, как я загрузил архив с Hackage и распаковал его, когда я запустил

sudo runhaskell Setup.hs configure

Я получаю это:

Configuring OpenGL-2.4.0.2...
Setup.hs: At least the following dependencies are missing:
GLURaw >=1.1.0.0,
ObjectName -any,
OpenGLRaw >=1.1.0.0,
StateVar -any,
Tensor -any

Но я проверил, что уже установил это:

GLURaw 1.1.0.1
ObjectName 1.0.0.0
OpenGLRaw 1.1.0.2
StateVar 1.0.0.0
Tensor 1.0.0.1

И я попытался переустановить их, но безрезультатно.

Я использую GHC 7.2.1, cabal-install 0.8.0 с Cabal 1.8.0.2 под Ubuntu 11.04.

Спасибо за любые предложения!


person zw324    schedule 13.02.2012    source источник
comment
Вы настраиваетесь как суперпользователь (почему?). Установлены ли отсутствующие пакеты, которые вы установили, на самом деле глобально или они находятся только в конфигурации пакета пользователя и, следовательно, не установлены с точки зрения суперпользователя?   -  person Thomas M. DuBuisson    schedule 14.02.2012
comment
@ThomasM.DuBuisson: я пробовал и с sudo, и без него, но ни один из них не работал. Спасибо за внимание :)   -  person zw324    schedule 14.02.2012
comment
Но вы не ответили на вопрос. iirc (прошло некоторое время с тех пор, как я устанавливал без установки кабалы) по умолчанию используется глобальная база данных. Если у вас есть пакеты, установленные локально, вам необходимо явно указать локальную базу пакетов с помощью флага --user.   -  person Thomas M. DuBuisson    schedule 14.02.2012
comment
@ThomasM.DuBuisson: Спасибо! Вы с Даниэлем оба правы. Я извиняюсь за свой довольно глупый вопрос и недостаточно глубоко копался в документе (или не RTFM).   -  person zw324    schedule 14.02.2012
comment
Не будьте слишком строги к себе, это довольно запутанно, что два способа имеют разные значения по умолчанию.   -  person Daniel Fischer    schedule 14.02.2012


Ответы (1)


Если вы установили зависимости с помощью cabal-install (программа командной строки cabal), они по умолчанию устанавливаются в файле package-db пользователя. Но когда вы устанавливаете пакет способом runhaskell ./Setup.hs, он по умолчанию выполняет глобальную установку и, следовательно, не может использовать пакеты из базы данных пользователя. Попробуйте установить пакет в user-db,

runhaskell ./Setup.hs configure --user

или переустановите зависимости в глобальной БД, cabal install --global foo.

person Daniel Fischer    schedule 14.02.2012
comment
@ZiyaoWei: вы также можете просто настроить Cabal и т. Д. В этом каталоге, а не напрямую использовать runhaskell Setup.hs. - person ivanm; 14.02.2012
comment
@ZiyaoWei или даже просто cabal install в этом каталоге, если вам не нужны какие-либо специальные параметры конфигурации. - person Daniel Fischer; 14.02.2012