Linux的幾種軟件安裝方式:源碼編譯、壓縮包、RPM包,最簡單的當然是RPM安裝方式,不需配置環境,不需安裝相關依賴(依賴自動安裝),一直好奇為什麼這種方式不需要配置環境。

通過RPM方式安裝時,是嚴格遵照Linux對環境變量的路徑的要求,比如:
/usr/bin 可執行的命令安裝目錄
/usr/lib 程序所使用的庫函數保存位置
/usr/share/doc 基本的軟件使用手冊保存位置
/usr/share/man 幫助文件保存位置
舉例來說,我使用RPM安裝的jdk1.8,安裝完成後,沒做任何配置,即可全局使用java命令,本以為安裝過程自動在~/.bash_profile或者/etc/profile中做了環境配置,但是查看後並沒有,通過$PATH也查看不到jdk的路徑。
但是在 /usr/bin中看到了如下:

也就是說,將jdk安裝目錄下的bin下的java、javac等命令「複製」到了這裡,當然這不是簡單的複製,但道理就是那個道理。所以,也就是說,當我們在任意的位置執行java相關命令時,系統會到/usr/bin中來執行。
所以就可以理解為:/usr/bin是針對RPM安裝的軟件的profile文件,RPM安裝過程會自動將一些可執行文件添加到/usr/bin里,從而「配置了環境」,而不需我們配置路徑到profile里。
查看/usr/lib後也可以發現其中有jdk安裝目錄下的lib中的相關包,查看/usr/share/man後也可以發下其中有jdk安裝目錄下的man中的相關文檔。
所以,說到這裡,應該可以理解為什麼RPM不需配置環境了。
所以,在執行Java某一個命令時,若其按照RPM方式安裝,就到/usr/bin下尋找該命令,找到便執行;若其是按照普通方式安裝,就到profile文件里配置的路徑下尋找該命令,找到便執行。
Tips:並不是說隨便將一個可執行文件複製到/usr/bin中就可以全局執行(親測不行)。如果是通過源碼編譯安裝的JDK,則需要配置環境變量。
JDK環境變量的作用:
JAVA_HOME =你的JDK安裝位置
CLASSPATH = .;%JAVA_HOME%lib
PATH = %JAVA_HOME%bin
第一個JAVA_HOME主要是給後面兩個環境變量使用的。
第二個CLASSPATH指定的是默認的類庫的位置,如上設置,為當前目錄和JAVA_HOME的lib目錄
第三個PATH是把java的bin加入到系統路徑中,這樣在命令行或其他程序全局調用java,javac, javaw等命令了。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/280041.html