從源碼包編譯安裝程序
1、源碼編譯簡介
既然有了RPM安裝,那麼為什麼需要源碼安裝呢?首先它能獲得最新的軟件版本,及時修復bug;然後它那能根據用戶需要,靈活定制軟件功能。它的應用場合也非常廣泛,比如安裝較新版本的應用程序時、當前安裝的程序無法滿足需要時或者需要為應用程序添加新的功能時等。
Tarball封包:多為.tar.gz或者tar.bz2格式。
確認源代碼編譯環境:
需要安裝支持C/C++程序語言的編譯器。
[root@localhost ~]# gcc --version ==>或g++ -v [--version] gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-44) Copyright (C) 2006 Free Software Foundation, Inc. 本程序是自由軟件;請參看源代碼的版權聲明。本軟件沒有任何擔保; 包括沒有適銷性和某一專用目的下的適用性擔保。 [root@localhost ~]# g++ --version g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-44)
……
(備注:在實際編譯安裝軟件的操作中,大多數情況是通過 make 來自動調用gcc或g++進行工作,無需用戶手動執行gcc等命令)
2、從源碼編譯安裝程序的基本過程
解包 —— tar
解包、釋放出源代碼文件
配置 —— ./configure (configure 一般是位於軟件包目錄中的可執行腳本文件)
針對當前系統、軟件環境,配置好安裝參數
編譯 —— make
將源代碼文件變為二進制的可執行程序
安裝 —— make install
將編譯好的程序文件復制到系統中
3、源碼編譯安裝程序示例
1)、解包
(習慣上將軟件包釋放到 /usr/src/ 目錄;解包後的源代碼文件位置:/usr/src/軟件名-版本號/)
[root@localhost ~]# tar zxvf axel-1.0a.tar.gz -C /usr/src/ [root@localhost ~]# ls /usr/src/axel-1.0a/ API axelrc.example configure CREDITS gui nl.po tcp.c axel.1 CHANGES conn.c de.po http.c README tcp.h axel.c conf.c conn.h ftp.c http.h search.c text.c axel.h conf.h COPYING ftp.h Makefile search.h
==>configure執行腳本用於下一步的配置,README或INSTALL文件可提供安裝方法
2)、配置
(需將工作目錄切換到軟件源碼所在目錄;使用源碼目錄中的 configure 腳本;執行“./configure --help” 可以查看幫助;典型的配置選項: --prefix=���件安裝目錄)
[root@localhost ~]# cd /usr/src/axel-1.0a [root@localhost axel-1.0a]# ./configure --prefix=/usr/local/axel ==>若不指定任何配置選項,將采用默認值
(備注:不同的應用程序其配置參數會存在區別,因此學會使用“./configure --help”非常重要(“./”表示當前目錄);用戶應用程序習慣上安裝到“/usr/local/軟件名”文件夾中;編譯過程中如果出現錯誤,通常是由於缺少依賴軟件包所致;根據軟件大小不同,配置過程可能會需要不同的時間)
3)、編譯 :執行make命令
4)、安裝 :執行make install命令
[root@localhost axel-1.0a]# make [root@localhost axel-1.0a]# make install
驗證已編譯安裝完成的程序:
[root@localhost axel-1.0a]# ls /usr/local/axel/ /usr/local/axel/bin/ /usr/local/axel/: bin etc share /usr/local/axel/bin/: axel [root@localhost axel-1.0a]# /usr/local/axel/bin/axel –help Usage: axel [options] url1 [url2] [url...] --max-speed=x -s x Specify maximum speed (bytes per second) ……