處理將包添加到路徑的“正確”方法
我下載並安裝了 Haskell 平台。它已安裝(預設)到
/usr/local/haskell/
我想將二進製文件添加
/usr/local/haskell/bin/
到我的路徑中。但我不想(如果可能的話)改變我的道路..這裡最好的做法是什麼?我應該移動
haskell/bin/*
到local/bin
還是將haskell文件夾添加到路徑的最佳做法?
另一種相當常見的更新方法
$PATH
是創建符號連結到已經在下面列出的二進製文件$PATH
,例如,在/usr/local/bin
.您可以通過以下方式實現:
$ cd /usr/local/bin $ sudo ln -s ../haskell/bin/* .
(但是,在您這樣做之前,請確保檢查其中的二進製文件列表
/usr/local/haskell/bin/
並檢查創建符號連結是否有意義。您可能也決定只對文件的子集進行符號連結。)您不想移動二進製文件本身的一個原因是,很多時候,以二進制形式分佈在 tarball 中的二進製文件的編寫方式是,在系統中的任何位置解壓後它們都可以工作。為了做到這一點,他們經常嘗試檢測它們的安裝位置(通常通過查看
/proc/self/exe
.)。通過這樣做,他們可以找到/usr/local/haskell
他們希望找到其他所需庫和文件的父目錄。創建符號連結通常不會干擾此類機制,因為它們仍然能夠在 下找到實際的二進製文件/usr/local/haskell/bin
,並成功找到安裝路徑。不移動二進製文件的另一個原因是,稍後如果你想解除安裝 Haskell,你可以簡單地刪除整個
/usr/local/haskell
目錄,你不需要記住一些二進製文件被移動到了/usr/local/bin
,即使你確實記得,你不需要回憶哪些屬於 Haskell(假設您已經使用此方法安裝了多個軟體包。)如果您通過刪除目錄來解除安裝 Haskell,您最終會得到一些損壞的符號連結/usr/local/bin
,但是它們’ 是無害的,並且很容易指出哪些屬於 Haskell,因為它們都會../haskell/bin
以它們的名字命名,所以它們也很容易清理。