У меня установлена Windows XP и Haskell Platform 2013. Когда я хочу скомпилировать свой код на каком-то компьютере, на котором на нем не установлена платформа Haskell, и мне не разрешено ничего устанавливать, я могу скопировать свою платформу Haskell на флеш-карту USB и запустить ее на этом компьютере, и это просто работа хорошо.Переносная установка пакета на платформе Haskell с помощью Cabal на окнах
Но иногда мне нужны дополнительные пакеты, которые не являются частью стандартной сборки платформы Haskell.
Я могу просто установить его на свой персональный компьютер с помощью Cabal, но я не знаю, как их установить таким образом, чтобы они могли работать портативно, т.е. е. с моей USB-карты на не мой компьютер.
Я попытался это:
cabal install gnuplot --prefix "C:\Program Files\Haskell Platform\2013.2.0.0"
Этот установленный пакет в папку платформы Haskell, но когда я запускаю Haskell Platform на другом компьютере, он не видел.
Я думаю, что я должен сделать файл конфигурации, который будет установлен в каталоге платформы Haskell, но я не знаю, как это сделать.
Пожалуйста, помогите мне решить эту проблему. Заранее спасибо!
Большое спасибо, Михаил Глушенковым! Все работает отлично сейчас.
Для удобства новичков, как я, что в поисках ответов, я просто описать инструкцию, что делать, чтобы иметь тот же результат:
0) Прочитайте инструкцию, прежде чем делать что-нибудь/
1) удалите все дополнительные пакеты, которые необходимы для установки переносных (с зависимостями): разрегистрировать эти пакеты с
ghc-pkg unregister gnuplot
, а затем удалить пакет-файлы из которой он сохраняет. Также удалите все связанных файлов из "package.conf.d" папок. Для их поиска используйте
ghc-pkg list
.
2) Run (возможно, это лишнее)
ghc-pkg recache
.
3) Установите пакет в желаемый каталог на платформе haskell. Я сделал это в "C: \ Program Files \ Haskell Platform \ 2013.2.0.0 \ addlib":
cabal install gnuplot --prefix "C:\Program Files\Haskell Platform\2013.2.0.0\addlib" --global
.
4) Измените каждый новый файл, связанный с установленными пакетами в "package.conf.d": замените "C: \ Program Files \ Haskell Platform \ 2013.2.0.0 \ addlib \ utility-ht-0.0.9 \ ghc -7.6.3 "в них:" $ topdir \ .. \ addlib \ utility-ht-0.0.9 \ ghc-7.6.3 ", i. е. «C: \ Program Files \ Haskell Platform \ 2013.2.0.0 \ addlib \" -> "$ topdir \ .. \ addlib \".
5) Запуск
ghc-pkg recache
.
3a) Возможно, это будет работать лучше, а затем 3 (я его не тестировал). Если это так, не делайте 3, 4 и 5.
cabal install gnuplot --prefix "$topdir\..\addlib" --global
.
End.
* UPD *
Я нашел некоторые глупые ошибки в данной инструкции (в 3а и 4). Исправлено.
3a не работает!
Я никогда не устанавливал Haskell на окнах, так что, возможно, это просто то, что я не понимаю, но я не получаю бит префикса. Префикс, который вы поставляете, не находится на вашем USB-накопителе, почему вы ожидаете увидеть его на другом компьютере? – asm
@AndrewMyers, я установил библиотеку в папку платформы Haskell и переместил папку платформы Haskell на флешку USB, так что физически библиотека была на другом компьютере. Проблема заключалась в том, чтобы сделать платформу Haskell видеть ее на другом компьютере. И я не знал, как это сделать, и поэтому я задал этот вопрос. –