У меня установлена Windows XP и Haskell Platform 2013. Когда я хочу скомпилировать свой код на каком-то компьютере, на котором не установлена платформа Haskell, и мне не разрешено ничего устанавливать, я могу скопировать свою платформу Haskell на USB-флеш-карту и запустить на этом компьютере, и это работает просто отлично.
Но иногда мне нужны дополнительные пакеты, не входящие в стандартную сборку платформы Haskell.
Я могу просто установить его на свой персональный компьютер с Cabal, но я не знаю, как их установить так, чтобы они могли работать портативно, т.е. е. с моей флешки на не моем компьютере.
Я пробовал это:
cabal install gnuplot --prefix "C:\Program Files\Haskell Platform\2013.2.0.0"
Этот установленный пакет в каталог платформы Haskell, но когда я запускаю платформу Haskell на другом компьютере, он его не видит.
Я думаю, что я должен сделать файл конфигурации для установки в каталог платформы Haskell, но я не знаю, как это сделать.
Пожалуйста, помогите мне решить эту проблему. Заранее спасибо!
Большое спасибо, Михаил Глушенков! Теперь все работает.
Для удобства таких же новичков, как я, ищущих ответы, я просто описываю инструкцию, что делать, чтобы получить такой же результат:
0) Прочтите инструкцию, прежде чем что-либо делать/
1) Удалите все дополнительные пакеты, необходимые для переносной установки (с зависимостями): отмените регистрацию этих пакетов с помощью
ghc-pkg unregister gnuplot
, а затем удалите файлы пакетов из того места, где он хранится. Также удалите все связанные файлы из папки "package.conf.d". Для их поиска используйте
ghc-pkg list
.
2) Запустить (может и не нужно)
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", т.е. е. "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
.
Конец.
*UPD*
Я нашел несколько глупых ошибок в этой инструкции (в 3а и 4). Исправлено сейчас.
3а не работает!