4

に 3.0.1 バージョンのAlexがインストールされてい/usr/binます。私は Haskell Platform が最初にそれをそこに置いたと思います (100% 確実ではありませんが...)。

残念ながら、バージョン 3.0.1 にはバグがあるため、3.0.5 にアップグレードする必要があります。cabal を使用して Alex の最新バージョンをインストールしようとしましたがcabal install alex-3.0.5、実行可能ファイルが.cabal/binホーム フォルダーではなく、ホーム フォルダーにインストールされました。/usr/bin

実行可能ファイルを に手動でコピーするだけ/usr/binですか? (それはいつも大変なことのように聞こえます)

PATH 環境変数を変更して、それ.cabal/binが前に来るようにし/usr/binますか? (cabal フォルダーにある "ls" 実行可能ファイルまたは類似のファイルがシステムを台無しにしてしまうのではないかと心配しています)

それとも、一般的にそれを行うためのより簡単な方法はありますか?

4

2 に答える 2

3

最初に、私にとってうまく機能するレイアウトを指摘し、次に、特定の状況でどのように進めるかを提案したいと思います.

私にとってうまくいくもの

一般的に、より良いレイアウトは次の検索パスを持つことだと思います。

  1. Haskell に関連しない重要なバイナリを含むディレクトリ
  2. cabal installインストール先のディレクトリ
  3. Haskell プラットフォームのバイナリがあるディレクトリ

このようにcabal installして、Haskell プラットフォームからバイナリを更新するために使用できますが、Haskell に関連しない一部のバイナリを誤ってシャドウすることはありません。

(私の Windows マシンでは、Haskell プラットフォームのバイナリはデフォルトで別のディレクトリにインストールされるため、このレイアウトは簡単に実現できます。そのため、手動で検索パスを調整するだけです。それを実現する方法がわかりません。他のプラットフォームでは)。

あなたの特定の状況のた​​めの提案

Haskell プラットフォームのバイナリが、Haskell に関連しないバイナリと一緒に既にインストールされている特定の状況では、検索パスに次のレイアウトを使用できる場合があります。

  1. 3 のいくつかのバイナリへのリンクを含むディレクトリ
  2. Haskell に関連しない重要なバイナリと Haskell プラットフォームのバイナリを含むディレクトリ
  3. cabal installインストール先のディレクトリ。

こうすれば、 のバイナリcabal installが誤って 2 の重要なものを隠してしまうことはありません。しかし、Haskell プラットフォームから何かを隠したい場合は、手動で 1 へのリンクを追加できます。プログラム名ごとに 1 回cabal install、そのプログラムを呼び出して更新することができます。Haskell プラットフォームにバンドルされている実行可能ファイルを調べて、それを一度だけ行うこともできます。

于 2013-08-27T08:47:01.267 に答える