Ошибки установки Haskell Cabal

У меня много проблем с cabal-install:
1: Каждый раз, когда я делаю cabal update, он говорит мне сделать cabal install cabal-install, что я и делаю, а затем, когда я снова делаю cabal update, он говорит то же самое.

2: Когда я пытаюсь установить ghc-mod из хакажа, я получаю эту ошибку:

[username@arch ~]$ cabal install ghc-mod
In order, the following will be installed:
haskell-src-exts-1.14.0 (reinstall) changes: pretty-1.1.1.1 -> 1.1.1.0
hlint-1.8.55 (reinstall)
ghc-mod-3.1.4
setup: The program happy version >=1.17 is required but it could not be found.
ghc-mod-3.1.4 depends on haskell-src-exts-1.14.0 which failed to install.
haskell-src-exts-1.14.0 failed during the configure step.
hlint-1.8.55 depends on haskell-src-exts-1.14.0 which failed to install.

Итак, проблема была в The program happy version >=1.17 is required but it could not be found., поэтому я без проблем установил happy 1.19.2 с помощью cabal install happy.

Я снова попробовал cabal install ghc-mod, та же ошибка, поэтому я попробовал cabal install haskell-src-exts --reinstall --force-reinstalls. Это дало мне следующую ошибку:

[username@arch ~]$ cabal install haskell-src-exts --reinstall --force-reinstalls
Configuring haskell-src-exts-1.14.0...
setup: The program happy version >=1.17 is required but it could not be found.
Failed to install haskell-src-exts-1.14.0
cabal: Error: some packages failed to install:
haskell-src-exts-1.14.0 failed during the configure step. The exception was:
ExitFailure 1

В основном The program happy version >=1.17 is required but it could not be found.. Так счастлив, что проблема снова?

Я также пытался загрузить файлы tar.gz из hackage и использовать cabal install в файле .cabal, а также изменить файл .cabal, чтобы игнорировать зависимости, но все равно не удалось.


person functorial    schedule 08.12.2013    source источник


Ответы (2)


cabal install помещает исполняемые файлы в ~/.cabal/bin.

Если вы добавите его в свой путь, вы сможете использовать новые исполняемые файлы, установленные cabal:

$ PATH=$HOME/.cabal/bin:$PATH
person AtnNn    schedule 08.12.2013
comment
Удивительно. Я только что столкнулся с двумя действительно странными вещами, поэтому пишу здесь на случай, если это кому-то поможет. Первый: у меня уже было $HOME/.cabal/bin в $PATH, и… это не сработало! Это начало работать только после того, как я заменил $HOME на ~ — действительно забавно, потому что я использовал переменную, опасаясь, что тильда не сработает. Второй момент: даже после того, как система увидела путь, а счастливыймеждусобойчики все равно не увидели! Только после того, как я выполнил команду из этого ответа, она начала работать. Я предполагаю, что кабала тоже не понимает тильду… - person Hi-Angel; 06.12.2015
comment
Итак, я думаю, проблема в следующем: cabal хочет полный путь. Итак, после того, как я добавил в свой /etc/environment в $PATH :$HOME/.cabal/bin (любой вариант с тильдой), клика в обоих случаях думает, что тильда или $HOME является частью пути (это тоже правильный путь). Чтобы все заработало, нужно в /etc/environment прописать полный путь до каталога с бинарниками. - person Hi-Angel; 06.12.2015

Я столкнулся с той же проблемой, и я решил проблему с установкой пакета happy (непонятное имя пакета). Поэтому установите его с помощью менеджера пакетов (apt-get, pacman и т. д.) перед установкой пакета с помощью cabal. Это должно решить проблему.

person Mesut Tasci    schedule 05.04.2014
comment
При чистой установке из исходного кода GHC/cabal (без платформы Haskell) эта установка устранила неописуемый ExitFailure 1 сбой. - person Elliot Cameron; 19.07.2014
comment
Я смог исправить это cabal install happy. - person connorbode; 07.09.2016
comment
Установка с помощью диспетчера пакетов в прошлом для меня на Ubuntu все испортила. Большая проблема заключается в том, что apt-get устанавливает один тип модуля Haskell, но затем вы начинаете использовать cabal и получаете разные версии модуля. Конфликты ада зависимостей. Так что предложение @connorbode лучше всего. Использование cabal дает вам последнюю синхронизированную версию. - person Rick Majpruz; 28.10.2017