13

ですから、これは少し個人的な問題ですが、良いアドバイスや回避策があるかもしれません。

問題は、Debian に cabal-install と haskell-platform をインストールすることです。

の場合apt-get install haskell-platform、同梱されてcabal-installおり、そのコマンドcabalを使用できます。

現在、これcabal-installは最新ではありません。

> which cabal
/usr/bin/cabal
> /usr/bin/cabal --version
cabal-install version 0.8.0
using version 1.8.0.2 of the Cabal library

しかし、実行についての私の理解でcabal updateは、それはcabalを更新しますが、それは「Debianのもの」ではないため、~/.cabal/bin/.

> ~/.cabal/bin/cabal --version
cabal-install version 0.8.2
using version 1.8.0.2 of the Cabal library

現在、私のシステムには 2 つのカバルがあり、入力して取得したcabalものは使用したいものではありません...それ自体ではなく他のカバルを更新し続けるため、効果がありません。

だから私がしたことは、私の中でそれをエイリアスしたことでした~/.bashrc:

alias cabal='~/.cabal/bin/cabal'

今:

> cabal --version
cabal-install version 0.8.2
using version 1.8.0.2 of the Cabal library

だから、私の最後の質問:

  • cabal 0.8.2 を保持する deb リポジトリはありますか?
  • 現在のソリューションが問題を引き起こす可能性はありますか? (たとえば、which cabalまだ私の役に立たないを指している/usr/bin/cabalので、スクリプトがこのコマンドを使用すると、だまされます...)
  • 誰かがより良い解決策を思いつきましたか? (私のものは少しアドホックですが、舞台裏で何が起こっているのかについての私の貧弱な知識で思いつくことができるのはそれだけです...)
  • 上記の内容が間違っているか不正確である場合は、訂正してください。
4

4 に答える 4

13

私がやっていることは、--globalフラグを付けて cabal をインストールすることです。これにより cabal が にインストールされる/usr/local/bin/cabalため、常に Debian パッケージの cabal に置き換わります。

もう 1 つの方法は、一般的に Debian パッケージを避け、Haskell プラットフォームをそのソースから直接インストールすることです。Haskell ライブラリの最新リリースが常に必要な場合は、このアプローチも優れています。

于 2011-03-21T17:07:44.397 に答える
11

$HOME/.cabal/binの前にユーザーローカルを保持しPATHます。ghc6、、、および配布パッケージからのghc6-profみインストールします。私は新しい. 新しいもの自体を含め、私がインストールする残りのすべて。ghc6-doccabal-installcabal-install~/.cabalcabal installcabal

新しい GHC を使用したい場合は、それを にデプロイし/usr/local/stow/ghcVERSION、GNU で有効にします(また、私の で優先されるstowシンボリック リンクを追加します)。ディストリビューション GHC に戻したいときは、実行してすべてのシンボリック リンクを削除します。/usr/localPATHstow -D

プロジェクト固有の cabal インストールを使用して、時々cabal-dev発生する依存関係の破損を回避することを検討しています。cabal

実際のところ、私は Haskell Platform をまったく使用していません。すべてを必要とするわけではなく、個々のライブラリをインストールできる方が簡単だからです。配布ライブラリはインストールしません。すべてのライブラリが利用できるわけではないか、必要なバージョンが正確に揃っているわけではないからです。そして、それらすべてが同じ場所にインストールされている場合(~/.cabal私の場合)、競合を制御する方がはるかに簡単です。--global間違っていてロールバックが難しいと思うので、私は何もインストールしません。

于 2011-03-21T17:47:08.260 に答える
4

もちろん、この情報は古くなっていますが、そうです、Debian 不安定版とテスト版では、執筆時点で cabal-install 0.10.2 が使用されています。

一般に、Haskell の Debian パッケージングは​​、連携して動作することが知られている一連のパッケージを必要とするユーザーを対象としています。これには cabal-install が含まれます。リポジトリから cabal-install を使用し、Debian 用にまだパッケージ化されていないライブラリをインストールするためだけに使用します。

免責事項: 私は Debian 用のパッケージを作成している一人です。

于 2011-09-21T20:47:05.590 に答える
1

Ubuntu では、システム パッケージを完全に無視して、ストウ経由で GHC をインストールする傾向もあります。

jetxee のアプローチからの 1 つのわずかなひねりは、Haskell Platform を (ソースから) インストールし、それを GHC stow ディレクトリにまとめてインストールすることです。パスを呼び出す必要があると思いますが、代わり/usr/local/stow/haskell-platform-VERSIONに使用する傾向があります。/usr/local/stow/ghc-VERSION

于 2011-03-22T13:22:56.037 に答える