2013-07-08 1 views
1

Я разработал модуль (M.hs), который зависит от 3 других модулей (A.hs, B.hs и C.hs). Теперь я хочу использовать модуль M для нескольких других проектов. Поэтому я должен установить этот модуль. Но для обучения я не хочу использовать cabal, я хочу сделать это вручную. Я хочу установить его в своем домашнем каталоге.Haskell linux установить модуль без кабины

Что такое правильный курс действий? Какие файлы должны быть созданы, скопированы? где? Как использовать этот модуль в другом проекте?

Дополнительная информация:

  1. Я использую Debian 6
  2. Я использую GHC 6.12

ответ

2

Вы говорите, что вы не хотите использовать cabal, но вы бы использовать Cabal?

cabal - это имя инструмента командной строки, предоставляемого cabal-install, которое может загружать пакеты из Hackage и разрешать зависимости.

Cabal - это библиотека, которую использует код Haskell для управления компиляцией (например, файлы предварительного процесса, сборка в правильном порядке, варианты сборки, генерация документации) и установка в нужное место.

Я бы не рекомендовал использовать Cabal, даже для учебных целей, пока вы не захотите написать для него замену. Но если вы действительно хотите сделать это, вот грубый контур, с достаточно подробно, чтобы выяснить для хорошего опыта обучения:

  1. Создайте файлы с -package-name yourpkgname-version.
  2. Связывание сгенерированных файлов для создания файла libyourpkgname-version.a.
  3. Создайте конфигурационный файл пакета, как /var/lib/ghc/package.conf.d/mtl-2.1.2.conf, и обратить внимание на name, `exposed-modules, import-dirs, library-dirs и hs-libraries
  4. регистр пакета, передавая его ghc-pkg register