2016-07-12 62 views
2

根據我的經驗,大多數安裝cli組件的OS X軟件安裝到/usr/local/,然後創建符號鏈接到/usr/local/bin/中的可執行文件,因爲不修改我的$PATH。但是,Go安裝程序的方法不同,在/etc/paths.d/中爲path_helper創建一個新條目,以便讀取並修改我的$PATH。有人能解釋這個設計決定背後的想法嗎?在Linux上有更多的路徑添加,而不是現有目錄中的可執行文件的符號鏈接,這是否更常見?在Mac上執行安裝程序行爲:PATH修改與符號鏈接

我很想更好地理解爲什麼選擇這個選項。我從來沒有見過其他軟件採用這種方法。

+0

我投票結束這個題目,因爲它是關於創建軟件開發工具鏈的安裝程序時做出的設計決定,與軟件開發本身的任何行爲無關。 – Adrian

+0

@Adrian你認爲哪個地方適合發佈? Go沒有SE網站,並且這個網站擁有最大的Go社區。不要投票結束,但投票遷移。 – jsejcksn

+0

這不是一個Go問題。你可以用「某些程序」來替換「Go」,它不會產生任何影響。如果我認爲這個問題有適當的SE網站,我會投票遷移,但我不確定。 – Adrian

回答

1

this threadpath_helpersource)是:

因爲自動安裝軟件(和什麼是更重要的卸載)是很容易這樣。許多Linux發行版切換到.d目錄的許多配置文件(Apache 2.0是AFAIK第一個支持這類內容的程序),因爲它使管理變得更加簡單。

Uninstall Go section確實提到:

如果用Mac OS X package安裝圍棋,那麼你應該刪除/etc/paths.d/go文件。

那些files in /etc/paths.d are processed in order(這樣你就可以管理PATH順序爲/usr/local/bin不是符號鏈接)。

請注意,path_helper僅由登錄shell調用,而不是由非交互式shell調用。

0

對不起,使用一個答案;我沒有足夠的聲譽點評論。 ((這看起來倒退了))

@jsejksn說:「我從來沒有見過其他軟件採用這種方法。」

我的/etc/paths.d包含Xquartz,CrossPack-AVR,aria2c和go的條目。從閱讀有關/etc/paths.d的google'd文章,我看到ImageMagik還爲/etc/paths.d添加了一個條目。

我猜想這是讓用戶運行二進制文件而不必在自己的配置文件腳本中修改PATH或丟失跟蹤符號鏈接等等的簡單方法。

也許sym-links更像是一個Gnu的東西,而/etc/paths.d更像是一個BSD的東西?

個人而言,我喜歡它。

相關問題