カバルインストールとデビアン
-
28-10-2019 - |
質問
したがって、これは少し個人的な問題ですが、おそらく人々は良いアドバイスや回避策を持っているでしょう。
問題は、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/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
, 、したがって、スクリプトがこのコマンドを使用した場合、彼らはだまされます...) - 誰かがより良い解決策を思いつきましたか? (私のものは少しアドホックですが、それが舞台裏で何が起こっているのかについての私の貧弱な知識で私が思いつくことができるすべてです...)
- 上記のことが間違っているか、不正確である場合は、私を修正してください。
解決
私がしていることは、カバルをインストールすることです --global
国旗。これにより、cabalにインストールされます /usr/local/bin/cabal
, 、したがって、それは常にDebianパッケージのカバルをスーパーシードします。
別の方法は、一般にDebianパッケージを回避し、Haskellプラットフォームをそのソースから直接インストールすることです。 Haskell Libsの最新リリースを常に持ちたい場合は、このアプローチも優れています。
他のヒント
私はユーザーローカルを維持します $HOME/.cabal/bin
前面に PATH
。インストールするだけです ghc6
, ghc6-prof
, ghc6-doc
と cabal-install
配布パッケージから。配布は使用していません cabal-install
新しいものをブートストラップする以上のもの ~/.cabal
。残りはすべてインストールします cabal install
, 、新しいものを含む cabal
自体。
新しいGHCを使用したいときは、に展開します /usr/local/stow/ghcVERSION
, 、およびGNUで有効にします stow
(Symlinks Inを追加します /usr/local
繰り返しますが、これは私に優先されます PATH
)。配布ghcに戻りたいときは実行したばかりです stow -D
それへのすべての象徴的なリンクを削除するため。
使用することを検討します cabal-dev
プロジェクト固有のカバルのインスタレーションを持ち、で発生する壊れた依存関係を避けるために cabal
時々。
実際のところ、Haskellプラットフォームはまったく使用していません。なぜなら、すべてを必要とせず、個々のライブラリをインストールできるようになったからです。流通ライブラリは、すべてが利用可能であるわけではないか、まさに必要なバージョンであるわけではないためです。そして、それらのすべてが同じ場所に設置されている場合、競合を制御する方がはるかに簡単です(~/.cabal
私の場合)。私は何もインストールしません --global
, 、それは間違っていて、ロールバックするのが難しいと思うからです。
もちろん、この情報は時代遅れになりますが、はい、Debianが不安定でテストしていると、執筆時点ではCabal-Install 0.10.2があります。
一般的に、Haskell StuffのDebianパッケージは、常に最新かつ最高のものを持っているとは限らないため、一緒に動作することが知られているパッケージのセット、すなわち依存関係のないユーザーを対象としています。これには、Cabal-Installが含まれます。私はリポジトリからCabal-Installを使用していますが、Debian用にパッケージ化されていないライブラリをインストールするためにのみ使用しています。
免責事項:私はDebianのパッケージを作成する人の1人です。
Ubuntuでは、システムパッケージを完全に無視して、ストウ経由でGHCをインストールする傾向があります。
Jetxeeのアプローチからのわずかなひねりは、Haskellプラットフォーム(ソースから)をインストールし、GHCストウディレクトリにまとめていることです。私はパスを呼ぶべきだと思います /usr/local/stow/haskell-platform-VERSION
, 、しかし、私は使用する傾向があります /usr/local/stow/ghc-VERSION
代わりは。