Linux軟件管理 - 編譯安裝

Linux軟件管理 - 編譯安裝

文本關鍵字:Linux、軟件管理、configure、make、make install

一、環境準備

很多軟件下載之後是一個源碼包,是不能夠直接運行的,需要先進行編譯安裝,生成可執行程序。在進行編譯時,需要先使用yum安裝編譯工具。

1. 核心組件

必須要安裝的就是gcc(GNU Compiler Collection)GNU編譯器套件,其中包含了C、C++、Objective-C、Fortran、Java、Ada、Go語言前端,也包含了對應語言的庫,幾乎可以滿足絕大部分源碼軟件對編譯環境的需要。

yum install gcc

Linux軟件管理 - 編譯安裝
安裝後可解決以下問題:
Linux軟件管理 - 編譯安裝

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.

Linux軟件管理 - 編譯安裝

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.

Linux軟件管理 - 編譯安裝

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

Linux軟件管理 - 編譯安裝

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文件夾中生成如下文件:
Linux軟件管理 - 編譯安裝

4. 編譯檢查:make test/check

編譯後可以使用make test或make check命令再次檢查編譯過程是否正確。

5. 編譯安裝:make install

執行最後一步:編譯安裝,根據configure階段的配置,將已經生成的軟件安裝到指定的目錄中去,可以對可執行文件定義軟連接或者添加到環境變量,方便使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章