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

Я стер и переустановил платформу Haskell (Haskell.org: cabal, stack, ghc), но теперь ни один дополнительный пакет не устанавливается должным образом. Cabal всегда заканчивается ExitFailure1. Вероятно, потому, что не удалось найти зависимость. Однако в большинстве случаев это основной пакет, который по какой-то причине не может разрешить. Есть ли опыт с этим явлением?

Сборка локального стека

--  While building custom Setup.hs for package json-lesson-0.1.0.0 using:
      /Users/administrator/.stack/setup-exe-cache/x86_64-osx/Cabal-simple_mPHDZzAJ_2.2.0.1_ghc-8.4.3 --builddir=.stack-work/dist/x86_64-osx/Cabal-2.2.0.1 configure --with-ghc=/Users/administrator/.stack/programs/x86_64-osx/ghc-8.4.3/bin/ghc --with-ghc-pkg=/Users/administrator/.stack/programs/x86_64-osx/ghc-8.4.3/bin/ghc-pkg --user --package-db=clear --package-db=global --package-db=/Users/administrator/.stack/snapshots/x86_64-osx/lts-12.5/8.4.3/pkgdb --package-db=/Users/administrator/Desktop/Haskell/json-lesson/.stack-work/install/x86_64-osx/lts-12.5/8.4.3/pkgdb --libdir=/Users/administrator/Desktop/Haskell/json-lesson/.stack-work/install/x86_64-osx/lts-12.5/8.4.3/lib --bindir=/Users/administrator/Desktop/Haskell/json-lesson/.stack-work/install/x86_64-osx/lts-12.5/8.4.3/bin --datadir=/Users/administrator/Desktop/Haskell/json-lesson/.stack-work/install/x86_64-osx/lts-12.5/8.4.3/share --libexecdir=/Users/administrator/Desktop/Haskell/json-lesson/.stack-work/install/x86_64-osx/lts-12.5/8.4.3/libexec --sysconfdir=/Users/administrator/Desktop/Haskell/json-lesson/.stack-work/install/x86_64-osx/lts-12.5/8.4.3/etc --docdir=/Users/administrator/Desktop/Haskell/json-lesson/.stack-work/install/x86_64-osx/lts-12.5/8.4.3/doc/json-lesson-0.1.0.0 --htmldir=/Users/administrator/Desktop/Haskell/json-lesson/.stack-work/install/x86_64-osx/lts-12.5/8.4.3/doc/json-lesson-0.1.0.0 --haddockdir=/Users/administrator/Desktop/Haskell/json-lesson/.stack-work/install/x86_64-osx/lts-12.5/8.4.3/doc/json-lesson-0.1.0.0 --dependency=aeson=aeson-1.3.1.1-v8c5j6KkT8PoXkOVjikF --dependency=base=base-4.11.1.0 --dependency=bytestring=bytestring-0.10.8.2 --dependency=text=text-1.2.3.0
    Process exited with code: ExitFailure 1

Используя кабальную установку:

MacBook-2:Haskell administrator$ cabal install aeson
clang: warning: argument unused during compilation: '-nopie' [-Wunused-command-line-argument]
Resolving dependencies...
Downloading base-compat-0.10.4...
Downloading dlist-0.8.0.4...
Configuring dlist-0.8.0.4...
Downloading tagged-0.8.6...
Downloading th-abstraction-0.2.8.0...
Configuring tagged-0.8.6...
Configuring base-compat-0.10.4...
Configuring th-abstraction-0.2.8.0...
Building dlist-0.8.0.4...
Building tagged-0.8.6...
Building base-compat-0.10.4...
Building th-abstraction-0.2.8.0...
Installed dlist-0.8.0.4
Downloading time-locale-compat-0.1.1.4...
Configuring time-locale-compat-0.1.1.4...
Building time-locale-compat-0.1.1.4...
Installed tagged-0.8.6
Downloading uuid-types-1.0.3...
Configuring uuid-types-1.0.3...
Installed time-locale-compat-0.1.1.4
Building uuid-types-1.0.3...
Failed to install uuid-types-1.0.3
Build log ( /Users/administrator/.cabal/logs/ghc-8.4.3/uuid-types-1.0.3-tE9Bfk2PgXDUPgbtamBdI.log ):
cabal: Entering directory '/var/folders/81/50s00bl11pv7fn8dw4n0w03m0000gn/T/cabal-tmp-5513/uuid-types-1.0.3'
Configuring uuid-types-1.0.3...
clang: warning: argument unused during compilation: '-nopie' [-Wunused-command-line-argument]
Preprocessing library for uuid-types-1.0.3..
Building library for uuid-types-1.0.3..
<command line>: cannot satisfy -package-id hashable-1.2.7.0-3hrKWzET808E40baaqgc23
    (use -v for more information)
cabal: Leaving directory '/var/folders/81/50s00bl11pv7fn8dw4n0w03m0000gn/T/cabal-tmp-5513/uuid-types-1.0.3'
Installed th-abstraction-0.2.8.0
Installed base-compat-0.10.4
Updating documentation index
/Users/administrator/Library/Haskell/share/doc/x86_64-osx-ghc-8.4.3/index.html
cabal: Error: some packages failed to install:
aeson-1.4.0.0-64eUw61rbC49Aocs9eETca depends on aeson-1.4.0.0 which failed to
install.
uuid-types-1.0.3-tE9Bfk2PgXDUPgbtamBdI failed during the building phase. The
exception was:
ExitFailure 1

person Madderote    schedule 06.08.2018    source источник
comment
Всегда показывайте, что именно вы пробовали, и полные сообщения об ошибках, иначе мы не сможем диагностировать проблему. Также уместными здесь будут выходы ghc --version, cabal info base и cabal --version.   -  person leftaroundabout    schedule 06.08.2018
comment
Это единственное сообщение об ошибке, которое вы получаете? Вы сначала запустили cabal update для синхронизации списка пакетов?   -  person Willem Van Onsem    schedule 06.08.2018
comment
Отредактированы исходные сообщения с результатами сборки локального стека и установки клики. Оба терпят неудачу. Впрочем, не только для aeson, но и для conduit, html-conduit и т. д.   -  person Madderote    schedule 06.08.2018
comment
Что говорит ghc-pkg check?   -  person Daniel Wagner    schedule 06.08.2018
comment
Кэш @DanielWagner устарел. ghc-pkg recache по-прежнему упоминает, что кеш устарел. Проверка пакетов явно не показывает aeson, conduit и html-conduit.   -  person Madderote    schedule 06.08.2018
comment
Хм. Я бы предложил просто уничтожить все папки ~/.ghc/x86_64-osx-ghc-8.4.3/package.conf.d и ~/.cabal...   -  person leftaroundabout    schedule 06.08.2018
comment
@leftaroundabout: я уничтожил папку ghc, cabal, stack и haskell, так что полная платформа haskell. Безрезультатно после переустановки. Довольно раздражает. Добейтесь большего прогресса в изучении Haskell, чем выясняя, почему Кабала дает мне все это.   -  person Madderote    schedule 06.08.2018


Ответы (1)


Решение проблем с поврежденным пакетом с помощью Cabal: в OSX есть каталог «Frameworks». Это содержит фреймворк Haskell, который вам нужно удалить, иначе ghc останется активным в фоновом режиме, и сборка пакета с помощью клики не удастся. Как правило, вам необходимо удалить (скрытые) каталоги .cabal, .stack и .ghc, а также структуру Haskell в «Frameworks». Также есть две (!) директории Haskell в ~/Library и ~/User/Library, которые лучше удалить.

Наткнулся на это, когда искал фреймворк Rails. Спасибо всем за участие в возможных решениях!

person Madderote    schedule 07.08.2018
comment
Правильный способ удалить платформу, которая должна правильно очищать, — это использовать инструмент командной строки uninstall-hs, установленный платформой, который знает все, что нужно очистить. - person sclv; 14.08.2018
comment
@sclv Спасибо за комментарий. Я пробовал это, к сожалению, безрезультатно, но это может быть связано с тем, что я сначала пытался вручную. Ваш комментарий действителен. Спасибо. - person Madderote; 15.08.2018