#haskell #cabal
#haskell #cabal
Вопрос:
При новой установке установите платформу Haskell (64-разрядную версию OSX от http://www.haskell.org/platform/mac.html ) Я получаю следующую ошибку:
Downloading the latest package list from hackage.haskell.org
Warning: http error: Network.Browser.request: Error raised ErrorParse "Invalid
cabal: Char.intToDigit: not a digit -1
После выполнения команды cabal update
. Не повезло ни с какими поисками, и я понятия не имею, откуда эта ошибка.
Комментарии:
1. Какой результат
cabal --version
?2. cabal-установите версию 1.16.0.2, используя версию 1.16.0 библиотеки Cabal
3. Вы уже пробовали подробный режим?
cabal update --verbose=3
. Вы можете рассмотреть возможность публикации выходных данных в gist, если это полезный вывод.4. Это не особенно полезно, но вот оно: gist.github.com/dansheffler /…
Ответ №1:
У меня была та же проблема. Единственным обходным решением, которое я смог найти, было переключиться с hackage на stackage.
В вашем .cabal/config.cabal/config
файле вы указываете что-то вроде следующего:
-- remote-repo: hackage.haskell.org:http://hackage.haskell.org/packages/archive
remote-repo: stackage:http://www.stackage.org/stackage/24e4d1b3bb101a80d3be1b146771c13df0827a82
Обратите внимание, что hackage.haskell.org должен быть закомментирован.
После этого cabal update
просто сработало.
Однако мне было бы интересно узнать о других решениях.
Ответ №2:
Вот соответствующий запрос об ошибке в HTTP-трекере: https://github.com/haskell/HTTP/issues/98
Похоже, что это (редкая) проблема с определенными сетевыми конфигурациями, которые приводят к (слегка) неверным результатам, возвращаемым, а библиотека HTTP является чрезмерно строгой.
Установка последней версии cabal
исполняемого файла (двоичный файл доступен для загрузки с веб-сайта cabal) обеспечит обходной путь, поскольку транспорт по умолчанию (и он настраивается) — https, а не http, и этот транспорт будет вызывать curl
or wget
, которые более слабы в том, как они обрабатывают синтаксический анализ httpответы.