Манипулирование исходными пакетами от Hackage, как легко развернуть несколько оконных коробок?
Недавно, когда я нашел хорошие пакеты с исходниками для ghc 6.12/6.10 по Hackage, я был вынужден внести некоторые незначительные или серьезные изменения в файлы cabal, чтобы эти пакеты работали под windows. Помимо того, что я собираюсь и объединяю свои исправления с github, что является наилучшим способом / достаточно хорошей практикой для переноса этих модифицированных сборок в пару других оконных коробок, на которых установлена только базовая платформа haskell?
Я бы предпочел, чтобы я мог как-то работать с установкой cabal, потому что это то, что обычно используют. Нужно ли помещать измененные каталоги сборки в общий / сетевой каталог и монтировать из целевого окна Windows? Скажи что-то вроде этого:
на машине готовлю
cabal fetch foo
cabal unpack foo
cd foo
edit .cabal and .hs
cabal configure
cabal build
На машине использовать и развивать нормальный
cd machinepreparemount
cd foo
cabal install
3 ответа
Инструмент Yackage позволяет вам легко запускать локальный Hackage-совместимый сервер. Вы можете развернуть свои измененные версии в Yackage, добавить репозиторий Yackage в свой список репозиториев и затем использовать установку cabal как обычно.
Использование github, безусловно, "достаточно хорошо", хотя, если вам кажется, что это обычная операция, которую вы выполняете для того, чтобы что-то работало в Windows, вы можете упомянуть об этом в списках рассылки по разработке для GHC или, по крайней мере, в haskell-cafe., Если эта процедура достаточно незначительна, возможно, потребуется включить ее в общие сборки.
Определенно, работа с установкой cabal рекомендуется. Однако вы можете распространять свои личные исправления, это личное дело и не предназначено для других.
В принципе, можно создавать локальные хакерские архивы и указывать на них cabal-инсталляцию. Однако в настоящее время у нас нет очень хороших инструментов для создания формата архива. Если у вас есть время, это вопрос правильной разметки каталогов и использования tar для создания индекса.