在百度知道上看到的回答覺得不錯:https://zhidao.baidu.com/question/1692690545668784588.html
如果你認為jdk是系統提供給你可選的程序,放在opt里
如果你認為這是你個人行為,自主安裝的,放在usr/local里,具體是usr/local/lib
如果你覺得jdk對你來說是必不可少的運行庫,放在lib里
上面三句是最開始的想法,
其實我也想找出一個最佳實踐,后來看了看linux的目錄結構,發現就算是同一個東西,系統自帶和你手動安裝,就不應該在同一個目錄里。同樣是瀏覽器,系統自帶的firefox就在/usr/lib里,而后來通過軟件包安裝的chrome就在/opt里。
如果系統自帶java,我覺得他會在lib里或者/usr/lib,看它對java的定義是必需的庫還是
如果能在軟件管理器里安裝,那么會安裝在/usr/lib
如果oracle給你的是deb,那么會被安裝在opt
所以自己安裝,就要放在/usr/local/lib里比較合適了
另附兩個關於Linux目錄的對比說明
http://blog.51cto.com/mystery888/1835223
聽完馬哥的Linux培訓關於Linux文件系統及文件類型,有一個疑惑,同樣是存放第三方應用程序的安裝位置,/opt跟/usr/local 有何區別,為什么存在兩個相同功能的地方,讓人混淆呢。帶着這個問題,我尋找了資料,原來Linux的結構是這樣的。
/usr/local下一般是你安裝軟件的目錄,這個目錄就相當於在windows下的programefiles這個目錄
/opt這個目錄是一些大型軟件的安裝目錄,或者是一些服務程序的安裝目錄
/opt
Here’s where optional stuff is put. Trying out the latest Firefox beta? Install it to /opt where you can delete it without affecting other settings. Programs in here usually live inside a single folder whick contains all of their data, libraries, etc.
/opt這里主要存放那些可選的程序。你想嘗試最新的firefox測試版嗎?那就裝到/opt目錄下吧,這樣,當你嘗試完,想刪掉firefox的時候,你就可 以直接刪除它,而不影響系統其他任何設置。安裝到/opt目錄下的程序,它所有的數據、庫文件等等都是放在同個目錄下面。
舉個例子:剛才裝的測試版firefox,就可以裝到/opt/firefox_beta目錄下,/opt/firefox_beta目錄下面就包含了運 行firefox所需要的所有文件、庫、數據等等。要刪除firefox的時候,你只需刪除/opt/firefox_beta目錄即可,非常簡單。
/usr/local
This is where most manually installed (ie. outside of your package manager) software goes. It has the same structure as /usr. It is a good idea to leave /usr to your package manager and put any custom scripts and things into /usr/local, since nothing important normally lives in /usr/local.
/usr/local這里主要存放那些手動安裝的軟件,即 不是通過“新立得”或apt-get安裝的軟件。
它和/usr目錄具有相類似的目錄結構。
讓軟件包管理器來管理/usr目錄,而把自定義的腳本(scripts)放到/usr/local目錄下面,我想這應該是個不錯的主意。
PS:新立得(Synaptic)是Debian和Ubuntu Linux操作系統的包管理工具apt的圖形化前端。它結合了圖形界面的簡單操作和 apt-get 命令行工具的強大功能
什么?看完還是不夠深刻?那結合Windows作對比,簡單通俗點說:
Linux 的軟件安裝目錄是也是有講究的,理解這一點,在對系統管理是有益的
/usr
:系統級的目錄,可以理解為C:/Windows/
,/usr/lib
理解為C:/Windows/System32
。/usr/local
:用戶級的程序目錄,可以理解為C:/Progrem Files/
。用戶自己編譯的軟件默認會安裝到這個目錄下。/opt
:用戶級的程序目錄,可以理解為D:/Software
,opt有可選的意思,這里可以用於放置第三方大型軟件(或游戲),當你不需要時,直接rm -rf
掉即可。在硬盤容量不夠時,也可將/opt單獨掛載到其他磁盤上使用。源碼放哪里?
/usr/src
:系統級的源碼目錄。/usr/local/src
:用戶級的源碼目錄。
https://docs.huihoo.com/lfs/blfs-1.0/introduction/position.html
應該把程序安裝在 /usr還是 /usr/local?
對於一個以LFS為基礎的系統來說,這是一個沒有明確答案的問題。
在傳統的unix系統中,/usr通常只包含系統發行時自帶的程序,而/usr/local則是本地系統管理員用來自由添加程序的目錄。這里有一條嚴厲而牢固的規則:除非在里面創建目錄,unix發行版不得使用/usr/local 。
對於Linux發行版,如 RedHat, Debian 等等,一個可能的規定是:/usr目錄只能由發行版的軟件包管理工具負責管理,而對/usr/local卻沒有這樣做。正是因為采用這種方式,軟件包管理工具的數據庫才能知道在/usr目錄內的每一個文件。
LFS的用戶是自己建立系統的,所以能自己決定系統文件和用戶文件的放置方式。因此,應該按照有利於系統管理員使用的方式作出選擇。這里有幾個把文件安裝到/usr或者是/usr/local的理由:
如果網絡上的計算機都運行LFS或者是混合使用LFS和其它linux發行版,所有連網計算機共用的軟件應該安裝在/usr/local內。這樣可以通過NFS文件系統共享該目錄或者從一個服務器上鏡象過來。此時local表示本地服務器提供軟件。
如果網絡上的計算機都運行同樣的LFS系統,/usr/local應該安裝各台計算機之間不相同的軟件。這時local表示本地計算機提供軟件。
如果你在一台計算機上同時安裝了幾個linux發行版,並希望在某個目錄存放它們共享的軟件,這時/usr/local目錄就能發揮作用了。
或者你想要經常重建LFS系統,但又希望把不想每次重復編譯的軟件存放在某處,你也可以把軟件安裝在/usr/local目錄。這樣你就可以在不丟失數據的情況下刪去LFS系統並從一個干凈的分區重新開始。
一些人會問為什么不使用你自己的目錄樹,也就是使用/usr/site 而不是 /usr/local?
沒有什么能阻止你,確實可以在很多地方創建自己的目錄樹,但這使安裝新軟件更加麻煩。自動化的安裝程序通常要到/usr或/usr/local目錄下尋找所依賴的文件,如果要找的文件不在/usr目錄里面,除非你指定目錄讓安裝程序查找所依賴的文件,安裝可能會失敗。
那么在BLFS中軟件的安裝位置在那里?
除非特別聲明,所有BLFS中的軟件都安裝在/usr目錄下。也有一些文件被放在/usr/local目錄下,但它們只是文檔並且有足夠的理由這樣做。這些例外的情況都會在本書中得到很好的說明,如果發現有不對的地方,請告訴我們!