Haskellを 公式サイト からインストールしました。その後、クイックスタートチュートリアルに従います。
走る:
cabal update
これはこのメッセージを示しています:
Downloading the latest package list from hackage.haskell.org
Note: there is a new version of cabal-install available.
To upgrade, run: cabal install cabal-install
走る:
cabal install cabal-install
更新が成功したかどうかを確認します
cabal update
その結果、最初から同じメッセージが表示されます。
Downloading the latest package list from hackage.haskell.org
Note: there is a new version of cabal-install available.
To upgrade, run: cabal install cabal-install
では、cabal-installをアップグレードしましたか?陰謀団のバージョンを確認するにはどうすればよいですか?
重要:Mac OS X用の64ビットバージョンを使用しています。
Haskellプラットフォーム2012.4.0.0
をOSXにインストールした後、同様の問題が発生しました。 cabal install cabal-install
を実行すると、次のように終了しました。
cabal: ../ghc-7.4.2/lib/cabal-install-1.16.0.2/bin/cabal: does not exist
だから私はそれがどこかでその道を混乱させたと思いました。ただし、実行可能ファイルは実際には正常にビルドされ(~/Library/Haskell/ghc-7.4.2/lib/cabal-install-1.16.0.2/bin/cabal
を確認)、そこからパス上にある~/Library/Haskell/bin
にコピーしました。
その後、すべてが正常に実行されました。
$ which cabal
/Users/luke/Library/Haskell/bin/cabal
$ cabal update
Downloading the latest package list from hackage.haskell.org
$ cabal --version
cabal-install version 1.16.0.2
using version 1.16.0.3 of the Cabal library
私の場合(そしておそらく他の人?)、cabalは/usr/local/bin
をインストールするときに、自作によってhaskell-platform
に最初にインストールされます。 cabalをアップグレードする場合、バージョンは$HOME/.cabal/bin/cabal
にインストールされます。次のように、キャバルビンを$PATH
のより高い位置に配置する必要があります。
export PATH=$HOME/.cabal/bin:$PATH
ここでは、誰もが少し異なる問題を経験しているようです。私の場合、cabal
は正常にビルドされ、~/Library/Haskell/bin
にインストールされました。
~/.cabal/config
に記載されているように、~/Library/Haskell/bin
をPATH
に追加すると問題が解決しました。
以下は~/.cabal/config
の説明です。
-- === Built executables will be installed in:
-- ~/Library/Haskell/bin
--
-- You may wish to place this on your PATH by adding the following
-- line to your ~/.bash_profile:
-- export PATH="$HOME/Library/Haskell/bin:$PATH"
OS X 10.8では、PATHに/Library/Haskell/bin
を追加する必要がありました(/usr/bin
の前に配置してください)。これを追加すると、エラーメッセージが修正されました
cabal --version
は、実行しているcabalのバージョンを示します。お持ちのcabal-installのバージョンを確認したい場合は、cabal info cabal-install
を実行し、インストールされているバージョン行を確認してください。
OS Xの私にとって、インストールされているバージョンは[unknown]
を実行した後、cabal install cabal-install
です。
私もこの問題を抱えていました。
which cabal
を実行した後、/usr/bin/cabal
を使用していることがわかりました。これを削除すると問題が解決しました。
デフォルトでは、cabalは現在のユーザーのパッケージをローカルにインストールするため、PATHの一部にはならないようです。 Cabalドキュメント 具体的にはステップ1.2.1を見てください。ここでは、デフォルトでグローバルにインストールするように構成を変更できます(非推奨)。
私がcabalをインストールした方法はcabal --global install cabal-install
でしたが、Haskellのデフォルトのインストール以降、パスはC:\Program Files\Haskell Platform\2013.2.0.0\lib\extralibs\bin;C:\Program Files\Haskell Platform\2013.2.0.0\bin;
の順序で配置され、最初のパスが2番目のパスよりも優先されるという問題がありました。 --globalフラグを使用して、cabalはバイナリをC:\Program Files\Haskell\bin
にインストールしました。これは私のパスにはありませんが、C:\Program Files\Haskell Platform\2013.2.0.0\lib\extralibs\bin
パスの前に追加する必要があります。
ドキュメントから取得
Cabal.exeは、%PATH%にあるディレクトリ(C:\ Program Files\Haskell\binなど)に配置する必要があります。
私の場合、この問題を解決するには、ここでいくつかの回答を組み合わせる必要がありました。私の状況にある他の人のために、1つの答えでより包括的な解決策を提供しようと思います。
which cabal
を実行すると、/usr/bin/cabal
がロードされていることがわかりました。これは/Library/Haskell/ghc-7.8.3-x86_64/bin/cabal
へのシンボリックリンクです。新しいバージョンのcabalがインストールされていると思いますが、このパスは単一バージョンに固有であるため、無視されました。 /Library/Haskell/bin
の前に$PATH
を追加すると、その状況が改善されました。cabal-install
が、システムの場所ではなく、私のcabalサンドボックスにインストールされていました。これを示唆する他の回答は見当たりませんでしたが、少しおしゃべりした後、アプリケーションのディレクトリの外に移動すると、cabalが実際にシステムにインストールできることがわかりました。--global
フラグを追加すると、問題が修正されました。私の最後のコマンドはcabal install --global cabal-install
でした。この後、ようやくちゃんとアップデートできました。TL; DR:陰謀団のサンドボックスを使用している場合は、プロジェクトのディレクトリの外に移動して、cabal install --global cabal-install
を実行します。また、他の人が提案しているように、$PATH
変数を確認してください。
私の場合、新しいバージョンのcabalは、私が参加していたプロジェクトの.cabal-sandboxにインストールされていました。
例えばバージョンの確認:
./.cabal-sandbox/bin/cabal --version
それで、それ以外でアップグレードする必要がありました。これはOSX上にありました。