Как вы получаете самую последнюю версию Cabal для Haskell? - PullRequest
0 голосов
/ 07 ноября 2018

Я только что провел около часа в кругах, пытаясь получить версию 2 Cabal. Сначала я обнаружил, что версия, поставляемая с моей установкой LinuxMint, была версия 1, поэтому я попробовал cabal update, но не сделал этого. Так что я нашел инструкции, в которых сказано использовать cabal install Cabal cabal-install. Сделал это, получил ошибку. Установлено, что ошибка, по-видимому, связана с использованием самой последней версии Haskell. Поэтому я установил версию 7, чтобы получить Cabal. Казалось, что работает, похоже, что я наконец-то получил Cabal версии 2. Но я также хочу самую последнюю версию Haskell, поэтому я скачал двоичные файлы для нее и установил ее снова - теперь кажется, что Cabal возвращается к версии 1. Является ли это невозможно иметь как версию 8 Haskell, так и версию 2 Cabal?

1 Ответ

0 голосов
/ 07 ноября 2018

В дополнение к комментариям Данидиаса я предлагаю непосредственно установить cabal-install в свой домашний каталог.

Начните с того, что убедитесь, что вы на самом деле используете нужную версию GHC 8.x (при необходимости используйте which ghc и ghc --version). Кроме того, избавьтесь от любых других версий установки, которые вы могли установить, чтобы избежать путаницы.

[каталог] ~/.cabal/bin не входит в мою PATH переменную, я должен поместить его в начало его определения?

Точно. ~/.cabal/bin - это расположение по умолчанию для исполняемых файлов, локально установленных с помощью cabal-install, включая саму cabal-install, поэтому оно должно быть в PATH. Помещение его в переднюю часть PATH даст ему приоритет над любой общесистемной установкой cabal-install, установленной с вашими менеджерами пакетов. (Обратите внимание, что это не будет проблемой, если вы предварительно удалите указанную общесистемную установку.)


Как только местность прояснится, вы можете скачать подходящий бинарный тарбол со страницы Cabal , извлечь исполняемый файл и поместить его в ~/.cabal/bin. Как отмечает danidiaz, двоичные файлы не обязательно должны быть в последней стабильной версии (как я пишу, двоичные файлы для Linux - 2.2.0.0, а не 2.4.0.0), но это, скорее всего, не будет иметь значения, так как когда у вас будет какая-то версия Кабал-установки доступны, вы можете просто запустить ...

cabal new-update # For version 2.4 or above; if not, use cabal update instead.
cabal new-install cabal-install

... который обновит вашу установку cabal до последней стабильной версии.

(Обратите внимание, что я использую команды new- * cabal-install . Я настоятельно советую вам сделать то же самое.)


Также, просматривая папку Cabal, я не вижу двоичные файлы. Имеются только папки «Распространение», «Язык», «Тесты» и «Документы».

Похоже, вы загрузили источники Cabal, библиотеки, а не Cabal-install, инструмента. Источники cabal-install также доступны на странице загрузки, ссылки на которую приведены выше (я пишу это, их версия 2.4.0.0). Если вы получаете их из GitHub , вам следует обратиться к каталогу cabal-install, а не к Cabal. В любом случае, если вы находитесь в соответствующем каталоге, для установки из исходного кода запустите ...

./bootstrap.sh --sandbox

... для которого требуется только GHC (в отличие от уже существующей кабальной установки). Как только он завершит сборку cabal-install, скрипт сообщит вам местоположение исполняемого файла (предположительно в подкаталоге .cabal-sandbox/bin). Скопируйте исполняемый файл в ~/.cabal/bin и продолжайте как прежде.

...