Ошибка Network-2.4.2.2 Cabal при установке в Windows

При попытке установить сетевой пакет (сеть установки клики) на Windows Server 2008 внутри изолированной программной среды клики (1.18.*) я получаю следующую ошибку:

C:\Users\user\Project>cabal install network --prefix=C:\Users\user\Project
Resolving dependencies...
Configuring network-2.4.2.2...
configure: error: invalid package name: 0
Failed to install network-2.4.2.2
cabal: Error: some packages failed to install:
network-2.4.2.2 failed during the configure step. The exception was:
ExitFailure 1

Важно отметить, что network устанавливается глобально через платформу haskell, но не устанавливается в песочнице по странной причине. Точная ошибка выглядит как configure: error: invalid package name: 0

Что может быть причиной того, что имя пакета равно 0?


person The Internet    schedule 21.03.2014    source источник
comment
Может быть, это потому, что вы используете cabal install network в оболочке cmd.exe? Пакеты с configure скриптами в них надо ставить из-под MSYS. Вот руководство по установке самой последней версии MSYS: ghc .haskell.org/trac/ghc/wiki/Building/Preparation/Windows/   -  person Mikhail Glushenkov    schedule 22.03.2014
comment
@MikhailGlushenkov Спасибо за помощь. Я установил MSYS и попытался запустить те же команды. Все еще получаю то же сообщение об ошибке, не уверен, что такого особенного в network. Я собираюсь отправить сообщение об ошибке в библиотеке. "configure: error: invalid package name: 0"   -  person The Internet    schedule 22.03.2014
comment
network-2.4.2.2 устанавливается под Cygwin, но не в приглашении DOS и не в приглашении MSYS для меня.   -  person The Internet    schedule 22.03.2014
comment
Хорошо, он устанавливается, но происходит сбой при связывании. Есть ли какой-то специальный флаг, с которым мне нужно скомпилировать, например указать правильную версию gcc? Loading package network-2.4.1.2 ... linking ... ghc.exe: unable to load package network-2.4.1.2' ghc.exe: \\vboxsrv\Users_dmj_SolidTranslate\.cabal-sandbox\i386-windows-ghc-7.6.3\network-2.4.1.2\HSnetwork-2.4.1.2.o: неизвестный символ _getWSErrorDescr' cabal.exe: Error: some packages failed to install: snap-0.13.2.4 failed during the building phase. The exception was: ExitFailure 1   -  person The Internet    schedule 24.03.2014
comment
Возможно, вы используете версию gcc (или ld), отличную от той, что поставляется с GHC? Убедитесь, что $GHC_DIR/mingw/bin находится в PATH и не перекрывается какой-либо другой версией.   -  person Mikhail Glushenkov    schedule 24.03.2014


Ответы (2)


Используйте MinGHC, который предоставляет бинарным установщикам для Windows достаточно утилит, чтобы стандартный cabal install мог успешно установить network упаковка.

person Neil Mitchell    schedule 16.06.2015

Проблема в том, что вы устанавливаете из командной строки Windows, вместо этого вы должны использовать оболочку Mingw или Cygwin. Я считаю, что проще всего установить с помощью Cygwin, а затем запустить:

WHICHGHC=`which ghc` && PATH=`dirname $WHICHGHC`/../mingw/bin:$PATH && cabal install network --configure-option --host=i386-unknown-mingw32 --global --enable-library-profiling 

Полные инструкции, включая альтернативные формы и отзывы, доступны в этом сообщении в блоге.

person Neil Mitchell    schedule 14.04.2014
comment
Нил, огромное спасибо! Я исправил проблему некоторое время назад, просмотрев ваше сообщение в блоге. Большое спасибо. Я тоже использую cygwin. В документах GHC говорится, что cygwin фактически вызывает mingw для сборки. "and it uses mingw's ghc while compiling your Haskell sources (even if you call it from cygwin's bash)" -- из Section 13.5.2 из Руководства пользователя GHC - person The Internet; 15.04.2014
comment
ошибка: имя_каталога: дополнительный операнд Files' Try имя_каталога --help' для получения дополнительной информации. - person ses; 09.05.2014
comment
@ses Я рекомендую установить ваш GHC по пути без пробелов - я думаю, что некоторые цитаты исправят это, но не знаю, где - возможно, около $WHICHGHC. - person Neil Mitchell; 10.05.2014
comment
Для тех, у кого есть дополнительная ошибка файла операнда, просто поместите $WHICHGHC в кавычки, у меня сработало. - person Andrew Selivanov; 16.06.2015