2013-08-27 20 views
4

我在我的/usr/bin上安裝了Alex的3.0.1版本。我認爲Haskell平臺最初把它放在那裏(儘管我不是100%肯定的......)。升級安裝在/ usr/bin上的Haskell程序版本的正確方法是什麼?

不幸的是,版本3.0.1是bugged,所以我需要升級到3.0.5。我試着用陰謀來安裝最新版本的亞歷克斯,但cabal install alex-3.0.5它安裝在.cabal/bin可執行文件在我的主文件夾,而不是在/usr/bin

難道我只是可執行文件手動複製到/usr/bin(聽起來像很多麻煩做所有的時間)

改變我的PATH環境變量,以便.cabal/bin/usr/bin過嗎?(恐怕這是一個「LS」可執行文件或小集團的文件夾類似的過度可能最終搞亂我的系統)

或者是有一個更簡單的方法去它有什麼看法?

+7

更改PATH以便首先查看'/ .cabal/bin'是最好的選擇。由於os特定的軟件包管理器通常將軟件包放在'/ usr/bin'中,所以你不應該直接擺弄它。 – Satvik

+0

@Satvik:我有人告訴我,你不應該把你的東西放在PATH變量的/ bin和/ usr/bin之前。你確定? – hugomg

+1

你不應該在'/ usr/bin'中首先安裝alex。我找到的最好的方法是安裝ghc,然後使用cabal安裝其餘的東西。我知道它與haskell平臺一起提供,但它也會讓你等待下一個版本更新軟件包。在'/ usr/bin'之前放入'.cabal/bin'的情況下,我沒有看到任何傷害。 – Satvik

回答

1

然而,第二種方法是將/.cabal/bin放在PATH中的/ usr/bin前面更簡單,這是大多數人已經做的。

它也沒有什麼大不了,因爲只有cabal會將文件放在.cabal/bin中,所以它應該是可以預測的,而且幾乎沒有覆蓋東西的風險。

3

我想先指出適合我的佈局,然後建議您如何在特定情況下繼續進行。

什麼對我來說

總體效果很好,我認爲一個更好的佈局是有以下搜索路徑:

  1. 目錄與重要的非哈斯克爾相關的二進制文件
  2. 目錄cabal install安裝到
  3. 來自Haskell平臺的二進制文件所在的目錄

這樣,您可以使用cabal install從Haskell平臺更新二進制文件,但它們不會意外地隱藏某些與Haskell相關的非二進制文件。 (在我的Windows機器上,這個佈局很容易實現,因爲Haskell平臺的二進制文件默認安裝在一個單獨的目錄中,所以我只是手動調整搜索路徑,就是這樣,我不知道如何在其他平臺上實現它)。

建議爲你的特殊情況

在你與已經與非哈斯克爾相關的二進制文件一起安裝哈斯克爾平臺的二進制文件的具體情況,也許你可以使用以下佈局的搜索路徑:

  1. 含有鏈接到一些二進制的3
  2. 目錄中重要的非哈斯克爾相關的二進制文件和Haskell平臺的二進制文件
  3. 目錄目錄安裝到。

這樣,來自cabal install的二進制文件不會意外地影響2中的重要內容。但是如果你決定想要影射Haskell平臺,你可以手動添加一個鏈接到1.如果它是一個軟鏈接,我認爲你只需要爲每個程序名稱做一次,然後你可以撥打cabal install程序來更新它。你甚至可以查找與Haskell平臺捆綁在一起的可執行文件,並且一勞永逸地做到這一點。

+0

帶軟鏈接的額外目錄是一個好主意。謝謝! – hugomg

相關問題