從源碼包編譯安裝程序
1、源碼編譯簡(jiǎn)介
既然有了RPM安裝,那么為什么需要源碼安裝呢?首先它能獲得最新的軟件版本,及時(shí)修復(fù)bug;然后它那能根據(jù)用戶需要,靈活定制軟件功能。它的應(yīng)用場(chǎng)合也非常廣泛,比如安裝較新版本的應(yīng)用程序時(shí)、當(dāng)前安裝的程序無(wú)法滿足需要時(shí)或者需要為應(yīng)用程序添加新的功能時(shí)等。
Tarball封包:多為.tar.gz或者tar.bz2格式。
確認(rèn)源代碼編譯環(huán)境:
需要安裝支持C/C++程序語(yǔ)言的編譯器。
[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. 本程序是自由軟件;請(qǐng)參看源代碼的版權(quán)聲明。本軟件沒(méi)有任何擔(dān)保; 包括沒(méi)有適銷性和某一專用目的下的適用性擔(dān)保。 [root@localhost ~]# g++ --version g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-44)
……
(備注:在實(shí)際編譯安裝軟件的操作中,大多數(shù)情況是通過(guò) make 來(lái)自動(dòng)調(diào)用gcc或g++進(jìn)行工作,無(wú)需用戶手動(dòng)執(zhí)行g(shù)cc等命令)
2、從源碼編譯安裝程序的基本過(guò)程
解包 —— tar
解包、釋放出源代碼文件
配置 —— ./configure (configure 一般是位于軟件包目錄中的可執(zhí)行腳本文件)
針對(duì)當(dāng)前系統(tǒng)、軟件環(huán)境,配置好安裝參數(shù)
編譯 —— make
將源代碼文件變?yōu)槎M(jìn)制的可執(zhí)行程序
安裝 —— make install
將編譯好的程序文件復(fù)制到系統(tǒng)中
3、源碼編譯安裝程序示例
1)、解包
(習(xí)慣上將軟件包釋放到 /usr/src/ 目錄;解包后的源代碼文件位置:/usr/src/軟件名-版本號(hào)/)
[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執(zhí)行腳本用于下一步的配置,README或INSTALL文件可提供安裝方法
2)、配置
(需將工作目錄切換到軟件源碼所在目錄;使用源碼目錄中的 configure 腳本;執(zhí)行“./configure --help” 可以查看幫助;典型的配置選項(xiàng): --prefix=���件安裝目錄)
[root@localhost ~]# cd /usr/src/axel-1.0a [root@localhost axel-1.0a]# ./configure --prefix=/usr/local/axel ==>若不指定任何配置選項(xiàng),將采用默認(rèn)值
(備注:不同的應(yīng)用程序其配置參數(shù)會(huì)存在區(qū)別,因此學(xué)會(huì)使用“./configure --help”非常重要(“./”表示當(dāng)前目錄);用戶應(yīng)用程序習(xí)慣上安裝到“/usr/local/軟件名”文件夾中;編譯過(guò)程中如果出現(xiàn)錯(cuò)誤,通常是由于缺少依賴軟件包所致;根據(jù)軟件大小不同,配置過(guò)程可能會(huì)需要不同的時(shí)間)
3)、編譯 :執(zhí)行make命令
4)、安裝 :執(zhí)行make install命令
[root@localhost axel-1.0a]# make [root@localhost axel-1.0a]# make install
驗(yàn)證已編譯安裝完成的程序:
[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) ……
![]() | ![]() .. 定價(jià):¥45 優(yōu)惠價(jià):¥42 更多書籍 |
![]() | ![]() .. 定價(jià):¥225 優(yōu)惠價(jià):¥213 更多書籍 |