寫在前面:博主是一隻經過實戰開發歷練後投身培訓事業的“小山豬”,暱稱取自動畫片《獅子王》中的“彭彭”,總是以樂觀、積極的心態對待周邊的事物。本人的技術路線從Java全棧工程師一路奔向大數據開發、數據挖掘領域,如今終有小成,願將昔日所獲與大家交流一二,希望對學習路上的你有所助益。同時,博主也想通過此次嘗試打造一個完善的技術圖書館,任何與文章技術點有關的異常、錯誤、注意事項均會在末尾列出,歡迎大家通過各種方式提供素材。
- 對於文章中出現的任何錯誤請大家批評指出,一定及時修改。
- 有任何想要討論和學習的問題可聯繫我:[email protected]。
- 發佈文章的風格因專欄而異,均自成體系,不足之處請大家指正。
CentOS軟件管理 - 編譯安裝
本文關鍵字:Linux、軟件管理、configure、make、make install
文章目錄
一、環境準備
很多軟件下載之後是一個源碼包,是不能夠直接運行的,需要先進行編譯安裝,生成可執行程序。在進行編譯時,需要先使用yum安裝編譯工具。
1. 核心組件
必須要安裝的就是gcc(GNU Compiler Collection)GNU編譯器套件,其中包含了C、C++、Objective-C、Fortran、Java、Ada、Go語言前端,也包含了對應語言的庫,幾乎可以滿足絕大部分源碼軟件對編譯環境的需要。
yum install gcc
安裝後可解決以下問題:
如果yum使用出現問題,可進傳送門:Linux軟件管理 - YUM工具
2. 其他組件
在進行實際軟件安裝時,由於軟件與軟件之間可能也會存在依賴和調用關係,如:在源碼編寫時引入了某個類庫,如果我們的系統中沒有相關的類庫,就會編譯失敗,這個時候我們只要根據報錯信息安裝相應的缺失類庫即可,以下列出了一些常用的類庫。
- pcre
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.
yum install pcre-devel
- zlib
./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib=<path> option.
yum install zlib-devel
- curl
src/main.c:18:23: 錯誤:curl/curl.h:沒有那個文件或目錄
src/main.c: 在函數‘main’中:
src/main.c:143: 警告:隱式聲明函數‘curl_global_init’
src/main.c:143: 錯誤:‘CURL_GLOBAL_ALL’未聲明(在此函數內第一次使用)
src/main.c:143: 錯誤:(即使在一個函數內多次出現,每個未聲明的標識符在其
src/main.c:143: 錯誤:所在的函數內也只報告一次。)
src/main.c:397: 警告:隱式聲明函數‘curl_global_cleanup’
make: *** [src/main.o] 錯誤 1
yum install curl-devel
- openssl
yum install openssl openssl-devel
二、安裝流程
1. 解壓:tar -zvxf
編譯安裝的第一步與解壓安裝類似,需要先進行解壓縮,一般都會包含以下目錄和內容。
- src目錄:軟件源碼存放位置
- LICENSE:許可及權限信息
- README:幫助說明文檔
- configure:用於檢測當前系統環境,用戶自定義配置,以及生成makefile文件
- Makefile:有可能直接存在,大多數情況下在執行configure後出現,用來指定編譯的順序及其他的複雜的功能操作
2. 配置:configure
編譯安裝的第一步就是執行configure腳本,會檢查編譯構建當前軟件的所需環境,同時用戶可以根據需要指定相關的配置。所有的選項以--開頭使用等號連接配置項與配置的值,如:--prefix=/usr/local/。
- --prefix:指定編譯安裝時的目標路徑,相當於自定義軟件安裝位置
- --bindir:指定二進制文件的安裝位置
- --sbindir:指定超級二進制文件的安裝位置
- --datadir:指定數據文件的安裝位置
- --include:指定頭文件的安裝位置
- --infodir:指定info文檔格式文件的安裝位置
- --mandir:指定幫助文檔的安裝位置
在不指定安裝位置時,將會安裝到默認位置,通常分佈在/usr/local中
3. 編譯:make
在進行configure後,如果環境不存在問題,會生成對應的Makefile文件,用於執行make命令時調用。
在make過後,其實軟件已經完成了安裝,會在源碼解壓目錄中生成構建完成的文件,如:Nginx軟件make後會在obj文件夾中生成如下文件:
4. 編譯檢查:make test/check
編譯後可以使用make test或make check命令再次檢查編譯過程是否正確。
5. 編譯安裝:make install
執行最後一步:編譯安裝,根據configure階段的配置,將已經生成的軟件安裝到指定的目錄中去,可以對可執行文件定義軟連接或者添加到環境變量,方便使用。