Mac の Haskell でプログラムを作成しています (アプリではなくコマンドライン実行可能ファイル)。GitHub を使用して、git リポジトリとホームページをホストしています。私が<project>.cabal
andSetup.hs
ファイルを作成したのは、Cabal を使用するとドキュメントのビルド、テスト、生成が簡単だからです。Hackage にもアップロードするかもしれませんが、わかりません。
バージョン 1.0 をタグ付けするときに、GitHub から tarball をダウンロードしてビルドする Homebrew 式を作成したいと考えています。唯一の依存関係を GHC にしたい。
cabal-install に依存しないようにするため、コマンドではなく / runhaskell Setup
configure
/ build
(プレフィックスは /usr/local/Cellar/…) を使用します。install
cabal
Hackage のパッケージ (blaze-builder や aeson など) を使い始めるまでは、これで問題ありません。これをどのように管理すればよいですか?
Haskell プラットフォーム全体をダウンロードする必要がある非 Haskeller を強制したくありません。理想的には、Homebrew が私のプログラムをビルドする前に GHC をインストールできるようにし、必要に応じてその後に GHC を削除できるようにする必要があります。Haskell プラットフォームを依存関係にし、最初に cabal-install などを使用して Haskell 依存関係をインストールすると、
- パッケージを含むフォルダーは
~/.cabal/
、後でそれらがあったとしても、取り残されます
brew uninstall haskell-platform
- 私は Hackage を使って人を作るだけ
cabal install
、つまりほとんどの部分を Haskeller に限定することもできます。
Cabal(-install) + Hackage は、開発や Haskeller にとって便利なツールだと思いますが、これには適していません。
使用しているパッケージのソースをダウンロードしてソース ツリーに含め、ビルド コマンドにも追加する必要がありますか? または、--package-db
オプション (ここにあります) を使用する必要がありますか? または、私の数式でパッケージの tarball をオンザフライでダウンロードしてビルドすることもできますか?
cabal2arch ( Arch wiki、GitHub repo ) を少し調べましたが、依存関係をどのように処理するのか、またはやりたくないことをしているだけなのかわかりません。