#haskell #haskell-stack
Вопрос:
Я пытаюсь установить hlint через стек в haskell stack install hlint
, но он сообщил мне, что план провалился, и я должен добавить несколько дополнительных stack.yaml
модулей .
После того , как я это сделал (и установил allow-newer: true
в файле config.yaml), он вернул мне следующее:
The same package name is used in multiple local packages
time used in:
- PLImmutable (PLIHackage (PackageIdentifier {pkgName = PackageName "time", pkgVersion = mkVersion [1,10]}) 536801b30aa2ce66da07cb19847827662650907efb2af4c8bef0a6276445075f,5738 (TreeKey 1591d9d1034f19cd38fbda525969f805b5ca083b45da85602cf2b04c1a82f640,6693))
- PLImmutable (PLIHackage (PackageIdentifier {pkgName = PackageName "time", pkgVersion = mkVersion [1,11,1,2]}) a957467595420495c2dd440d9efa1f58c62277cf9438c7e7a515d7a4c65571ec,6287 (TreeKey b7025dd19573d4c082d072eaba093a3fc1f891f3fde09b59561bcdca3566a0a4,7048))
Я не знаю, как это сделать правильно, так как командир не дал мне никаких новых инструкций. Помочь?
Ответ №1:
Установка вещей с глобальным stack.yaml
/ config.yaml
может быть сложной задачей. Часто бывает лучше клонировать репозиторий пакетов и создавать его с использованием собственных конфигурационных файлов, в которых указывается предпочтительный распознаватель стека пакета и т. Д. Попробуйте это:
git clone git@github.com:ndmitchell/hlint.git
# Or: git clone https://github.com/ndmitchell/hlint.git
cd hlint
git checkout v3.3.1 # Latest available release
stack install
Комментарии:
1. Спасибо за твой ответ, Том. Я новичок в haskell и использую терминал cmd, поэтому у меня есть еще несколько вопросов по поводу предлагаемого вами решения: 1. Я выполнил первую строку кода, который вы мне прислали. Вот что показал cmd:
Cloning into 'hlint'... git@github.com: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
2. О, я предполагал, что у вас был SSH-ключ, настроенный с помощью GitHub. Я просто отредактировал решение с помощью альтернативной команды, которую вы можете использовать вместо этого.
3. Похоже, он успешно установлен. Нет необходимости повторять команду глобальной установки, так как это просто приведет к тем же проблемам. Попробуйте набрать
which hlint
, чтобы увидеть, где он был установлен; для меня это так~/.local/bin/hlint
. Кстати, я бы рекомендовал отменить любые изменения, которые вы внесли в глобальную конфигурацию, напримерallow-newer: true
; почти никогда не рекомендуется прикасаться к ним, если вы не знаете, что делаете.4. О, вы не должны
which
были этого делать . Это нормально, вы также можете просто ввестиhlint
и подтвердить, что он запускается и отображаетhlint
параметры.5. Если все работает, пожалуйста, отметьте ответ как принятый 🙂