目錄
- 一.關于軟體包
- 二.軟體編譯程序
- 三.編譯安裝常用引數
- 四.原始碼編譯出錯的解決思路
- 五.各種軟體安裝方法的特點
一.關于軟體包
? 在linux中安裝軟體是需要安裝包的,軟體的安裝包有各種型別:.zip,.rar,.rpm,.tar.gz,.tar,軟體包還可以分為源代碼包和二進制
包,源代碼包是沒有經過編譯的包,需要經過GCC、C++編譯器環境編譯才能運行,二進制包無需編譯,可以直接安裝使用,區分是否為
源代碼包還是二進制包還得基于軟體包里面的檔案來判斷,包含.h、.c、.cpp、.cc等結尾的原始碼檔案,稱之為源代碼包,而軟體包里面存
在bin目錄(bin目錄里有可執行檔案),稱之為二進制包,原始碼包高度可定制,可以自由選擇自己需要的功能,
二.軟體編譯程序
1.將原始碼編譯成可供Linux運行的二進制檔案一共需要兩步:
- ? 使用gcc編譯器將原始碼編譯成目標檔案
- ? 再次使用gcc編譯器將目標檔案鏈接成二進制檔案
這程序看似簡單,實則不然,一個軟體的源代碼往往被封裝在多個源檔案中,此外這些檔案有錯綜復雜的依賴關系,編譯需要嚴格按照指
定的順序進行,這無疑增加了編譯的難度,好在make命令可以幫助我們簡化編譯程序,整個編譯程序被濃縮在Makefile檔案中(告訴
make命令需要怎么去編譯和鏈接程式),當執行make命令時,make會去當前目錄中尋找Makefile檔案,并根據該檔案中的要求完成整個
編譯程序,而Makefile檔案由configure命令產生,當執行configure命令時,configure會根據當前系統環境動態生成一個適合本系統的
Makefile檔案,供make命令使用,
2.Linux原始碼安裝步驟
- ? 獲取原始碼并解壓
- ? 查看INSTALL與README檔案:解壓后查看INSTALL與README檔案,這兩個檔案中詳細介紹了軟體的安裝方法和注意事項
- ? 創建Makefile檔案:執行configure命令,生成Makefile檔案
- ? 編譯:執行make clean;make命令將原始碼編譯成二進制檔案,PS:make clean命令用來清除上一次編譯生成的目標檔案,這個步驟可有可無,但為了確保編譯的成功,還是加上為好,防止由于軟體中含有殘留的目標檔案導致編譯失敗
- ? 安裝:執行make install命令將上一步編譯好的二進制檔案安裝到指定的目錄中去
三.編譯安裝常用引數
# ./configure
a. 指定安裝路徑,例如 --prefix=/usr/local/nginx
b. 啟用或禁用某項功能, 例如 --enable-ssl, --disable-filter --with-http_ssl_module
c. 和其它軟體關聯,例如--with-pcre
d. 檢查安裝環境(檢查依賴到的外部環境),例如是否有編譯器gcc,是否滿足軟體的依賴需求
最終生成:Makefile
# make -j 4 #按Makefile檔案編譯,可以使用-j 4指定4核心CPU編譯,提升速度
# make install #按Makefile定義的檔案路徑安裝
# make clean #清除上次的make命令所產生的object和Makefile檔案,使用場景:當需要重新執行configure時,需要執行make clean
#make uninstall #洗掉安裝包,有時洗掉不干凈,所以建議大家安裝時,在configure步驟添加一個: --prefix 引數,這樣洗掉或備份時,直接對洗掉--prefix指定的安裝目錄操作就可以了,
四.原始碼編譯出錯的解決思路
1.首先編譯軟體需要各種編譯器,各種依賴包,編譯之前先安裝軟體的依賴包能減少出錯,注意查看INSTALL與README檔案,這兩個文
件詳細介紹了軟體的安裝方法和注意事項;
2.根據./configure的報錯資訊來解決問題,缺少依賴包就安裝依賴包,如果知道缺少依賴軟體名,但是不知道依賴包,可以使用yum
search 軟體名,查看屬于哪個依賴包,然后安裝;
3.可以使用http://www.rpmseek.com/index.html查找需要的軟體,
五.各種軟體安裝方法的特點
- ? 使用yum 或者rpm直接安裝軟體:操作方便,軟體版本低(穩定版),穩定性好,管理方便,性能稍差;
- ? 原始碼編譯安裝軟體:操作麻煩,軟體版本新,可以定制,穩定性稍差,管理稍差,性能好,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/209531.html
標籤:Linux
