回覆列表
  • 1 # 產品經理老胡

    老胡的看法:

    Linux中的/opt和/usr/local目錄都是檔案系統層次結構標準(FHS)定義的。按照FHS的定義,/opt主要用於放置一些沒有包含在發行版軟體源裡的軟體,/usr/loacal雖然也是用於放置第三方軟體的,但是它們還是有一些區別的。

    一、預設環境變數不同

    /usr/local下的sbin/和bin/預設包含在$PATH中,作為程式執行的環境變數之一,而/opt沒有。也就是說/usr/local下面安裝的程式是作為系統程式的一部分的,/opt下面安裝的程式不被看做是系統範圍內的“純”使用者程式。這樣一個特性可以使得使用者能夠安裝自己喜歡的系統程式版本,並且在執行時優先執行/usr/local下面的版本。因為系統環境變數中/usr/local排在了/usr前面。

    二、下級目錄命名的規則不同

    /usr/local的下級目錄通常是sbin/、bin/、lib/、share/,所有的使用者程式的靜態檔案都按照分類分別放置在這幾個目錄中,指令碼檔案放到sbin,可執行程式放到bin,各種庫檔案放到lib,其它的檔案放到share。

    /opt的下級目錄一般是按照程式名或者廠商名來命名的,例如/opt/eclipse,或者/opt/google這樣,所有的程式檔案都按照程式自定義的目錄結構放在下面,完全不必遵循FHS規則。

    三、程式的靜態檔案產生途徑不同

    一般說來,/usr/local下的程式檔案大多是透過原始碼編譯得來,由makefile指定的預設輸出目錄基本上都是它。/opt下的程式大多是從打好的二進位制程式包安裝或者由程式檔案壓縮包直接解壓縮得到。

    總結一下,/opt和/usr/local都是使用者程式安裝目錄,但是他們的程式檔案組織方式有不同的地方。另外,雖然由原始碼編譯安裝的程式預設都安裝到/usr/local,但是我們也可以透過config指令碼指定輸出目錄來安裝到其它的地方。有時候可以安裝到/opt的程式,也可以直接安裝到/home/$USER下面,對程式的執行沒有任何影響。

  • 中秋節和大豐收的關聯?
  • 一個月跌了2000多億美元,比一年的營收還要高,蘋果會如何自救?