如何區分Linux中的源碼包和二進制包
Linux下的軟件包可分為兩種:
(1)源碼包。
(2)二進制包。
1、源碼包簡單介紹:
實際上,源碼包就是源代碼程序的集合。
由程序員們通過特定的語言編寫出來的。
例如:java項目中的一個個類文件的集合。
眾所眾知,計算機只能識別機器語言(二進制[0,1])。
所以源碼包安裝需要先將特定語言編寫的源代碼翻譯成機器語言(0,1)。
這樣我們才能在Linux安裝該包。
Java為例:
(1)使用javac命令將java代碼編譯成.class字節碼文件[與平臺無關]
(2)使用java命令將字節碼文件解釋成平臺機器碼
當然java本身屬於半編譯半解釋型語言。
此外,源碼包的安裝需要把源代碼編譯為二進制代碼,因此安裝時間較長。
如果有小友使用源碼包安裝MySQL的,相信一定是深有體會。
當然源碼包編譯是比較費時間的,如果在編譯過程中出現錯誤。
對於不熟悉程序語言初學者將會很難解決。
因此。
為了解決使用源碼包安裝方式的這些問題,Linux 軟件包安裝出現了使用二進制包的安裝方式。發現問題解決問題,一步步的不斷髮展。
2、Linux二進制包
二進制包就是源碼包經過成功編譯之後產生的包。
由於二進制包在發佈之前就已經完成了編譯的工作,因此用戶安裝軟件的速度較快,且安裝過程報錯機率大大減小。這就解決了源碼包安裝出現的問題。
當然,二進制包是Linux下默認的軟件安裝包。
3、源碼包 PK 二進制包
(1)源代碼包
優點:
1.源代碼程序
2.可以修改源代碼(需要在自己的能力範圍內)
3.可以選擇所需功能
4.卸載方便(直接刪除安裝目錄即可)
缺點:
1.安裝過程步驟較多(./configure make make install等等)
2.編譯時間長
3.安裝難度大
安裝位置:
/usr/local/軟件名/
例如:mysql
一般是/usr/local/mysql/
(2)二進制包
優點:
1.包管理系統簡單
2.由於是編譯過,所以安裝速度快
缺點:
1.不能看源代碼
2.功能選擇不如源碼包靈活
3.有可能依賴比較麻煩
安裝位置(默認位置):
1. /etc:配置文件安裝目錄
2. /usr/bin/:可執行命令安裝目錄
3. /usr/lib/:程序所使用的函數庫保存位置
4. /usr/share/doc/:基本的軟件使用手冊保存位置
5. /usr/share/man/:幫助文檔保存位置
4、補充:
安裝的服務可以使用系統服務管理命令(service)來管理
本質上是運行了/etc/rc.d/init.d/的命令
例如:
service network start
實質:
/etc/rc.d/init.d/network start
如何區分Linux中的源碼包和二進制包
Linux下的軟件包可分為兩種:
(1)源碼包。
(2)二進制包。
1、源碼包簡單介紹:
實際上,源碼包就是源代碼程序的集合。
由程序員們通過特定的語言編寫出來的。
例如:java項目中的一個個類文件的集合。
眾所眾知,計算機只能識別機器語言(二進制[0,1])。
所以源碼包安裝需要先將特定語言編寫的源代碼翻譯成機器語言(0,1)。
這樣我們才能在Linux安裝該包。
Java為例:
(1)使用javac命令將java代碼編譯成.class字節碼文件[與平臺無關]
(2)使用java命令將字節碼文件解釋成平臺機器碼
當然java本身屬於半編譯半解釋型語言。
此外,源碼包的安裝需要把源代碼編譯為二進制代碼,因此安裝時間較長。
如果有小友使用源碼包安裝MySQL的,相信一定是深有體會。
當然源碼包編譯是比較費時間的,如果在編譯過程中出現錯誤。
對於不熟悉程序語言初學者將會很難解決。
因此。
為了解決使用源碼包安裝方式的這些問題,Linux 軟件包安裝出現了使用二進制包的安裝方式。發現問題解決問題,一步步的不斷髮展。
2、Linux二進制包
二進制包就是源碼包經過成功編譯之後產生的包。
由於二進制包在發佈之前就已經完成了編譯的工作,因此用戶安裝軟件的速度較快,且安裝過程報錯機率大大減小。這就解決了源碼包安裝出現的問題。
當然,二進制包是Linux下默認的軟件安裝包。
3、源碼包 PK 二進制包
(1)源代碼包
優點:
1.源代碼程序
2.可以修改源代碼(需要在自己的能力範圍內)
3.可以選擇所需功能
4.卸載方便(直接刪除安裝目錄即可)
缺點:
1.安裝過程步驟較多(./configure make make install等等)
2.編譯時間長
3.安裝難度大
安裝位置:
/usr/local/軟件名/
例如:mysql
一般是/usr/local/mysql/
(2)二進制包
優點:
1.包管理系統簡單
2.由於是編譯過,所以安裝速度快
缺點:
1.不能看源代碼
2.功能選擇不如源碼包靈活
3.有可能依賴比較麻煩
安裝位置(默認位置):
1. /etc:配置文件安裝目錄
2. /usr/bin/:可執行命令安裝目錄
3. /usr/lib/:程序所使用的函數庫保存位置
4. /usr/share/doc/:基本的軟件使用手冊保存位置
5. /usr/share/man/:幫助文檔保存位置
4、補充:
安裝的服務可以使用系統服務管理命令(service)來管理
本質上是運行了/etc/rc.d/init.d/的命令
例如:
service network start
實質:
/etc/rc.d/init.d/network start
補充:
rc{0..6}.d目錄下都是一些符號鏈接文件
這些鏈接文件都指向init.d目錄下的service腳本文件
如果使用的是rpm包管理器(二進制包),並且安裝在默認位置,那麼可以直接使用service命令來管理。
如果安裝的是源碼包不能直接利用service,啟動服務的時候必須要使用絕對路徑。
例如:
/usr/local/apache/bin/apachectl start
當然這個可以自己配置成自啟動服務。
最後,感謝大家支持。