Этот ответ служит дополнением к другим ответам
(это уже просветляет).
Прежде всего, знать
что есть существенные различия
между второстепенными версиями GHC.
Например, изменение
от GHC 7,8 до GHC 7,10
(ср. предложение по сжиганию мостов ).
Так что может быть лучше
назвать ваши двоичные файлы GHC
также включая младшие номера версий, такие как:
ghc7.8
и ghc7.10
.
Предположим, у вас установлено несколько GHC со следующими именами:
/usr/bin/ghc
/usr/bin/ghc-pkg
/usr/bin/haddock
...
/usr/bin/ghc-7.8
/usr/bin/ghc-pkg-7.8
/usr/bin/haddock-ghc-7.8
...
/usr/bin/ghc-7.6
/usr/bin/ghc-pkg-7.6
/usr/bin/haddock-ghc-7.6
...
(and so on)
для GHC 7,8,
Вы можете создать файл с именем ~/.cabal-ghc-7.8/config
со следующим содержанием
(это указывает на места, описанные выше):
remote-repo: hackage.haskell.org:http://hackage.haskell.org/packages/archive
remote-repo-cache: /home/<USER>/.cabal-ghc-7.8/packages
world-file: /home/<USER>/.cabal-ghc-7.8/world
compiler: ghc
extra-prog-path: /home/<USER>/.cabal-ghc-7.8/bin
build-summary: /home/<USER>/.cabal-ghc-7.8/logs/build.log
remote-build-reporting: anonymous
jobs: $ncpus
install-dirs user
prefix: /home/<USER>/.cabal-ghc-7.8
program-locations
ghc-location: /usr/bin/ghc-7.8
ghc-pkg-location: /usr/bin/ghc-pkg-7.8
haddock-location: /usr/bin/haddock-ghc-7.8
hpc-location: /usr/bin/hpc-ghc-7.8
hsc2hs-location: /usr/bin/hsc2hs-ghc-7.8
Вы можете создать исполняемый файл
возможно называется cabal-ghc-7.8
в вашем PATH
(используется опция --config-file
, описанная в ответе n.m. ):
#!/bin/bash
exec cabal --config-file=$HOME/.cabal-ghc-7.8/config "$@"
Теперь, в вашем кабальном исходном каталоге,
Вы можете просто запустить cabal-ghc-7.8 build
построить ваши исходные файлы, используя GHC 7.8.
(или cabal-ghc-7.8 test
или что-нибудь еще)
Вы можете повторить процесс для всех установленных GHC.
Конечно, вам не следует беспокоиться о стандарте GHC.
По умолчанию Cabal ищет GHC с именем ghc
.
Этот ответ предполагает использование системы UNIX / Linux (например, использование bash
), но может быть адаптирован к другим системам с небольшими изменениями.