(始める前に:名前にCabalが含まれ、Haskellと関係があるすべてのものにCabalを使用します。)
先日、いつもの「YをインストールするにはXを更新する必要がありますが、これにより依存関係Zが壊れます」という問題が再び発生したので、私はただ尋ねたいと思いました。次の機能:
- バージョニング:パッケージの複数のバージョンを並べてインストールし、パッケージに目的の依存関係を選択させます。パッケージバージョンが指定されていない場合は、入手可能な最新のものを使用してください。
- パッケージを更新する-またはそれ以上の場合は、最新バージョンもインストールします。
- パッケージを削除する
- パッケージの整合性を確認する
このリストがどこに向かっているのかがわかります。今のところ、Cabalはやや洗練されたビルドシステムのように感じます(初めて使用を開始するときに、パッケージに必要なBaseのバージョンを調べてみてください)。これには、中途半端なパッケージインストーラーが付属しています。
では、もう一度質問します。Cabalがフル機能のビルド/パッケージシステムを作成しなかったのはなぜですか?現在の状態につながったいくつかの設計上の決定があったと確信しています。
(この質問は、Redditの暴言に多少触発されましたが、その男とは反対に、上記で誰かを怒らせるつもりはありません。):-)