linux軟體包的安裝之----源碼編譯安裝

來源:互聯網
上載者:User

標籤:linux軟體包的安裝之----源碼編譯安裝

前提:必須裝好前面說過的開發環境,rhel6上的3個開發包組

 

Rhel5/centos5上面安裝:

1)Development Tools (2)Server Platform Development (3)Develogmentlibraries

Rhel6/centos6上面安裝:

1)  Development Tools (2)Server Platform Development (3)Desktop PlatformDevelopment

 

**由於tarball中的c程式源碼檔案之間有依賴關係,因此我們不便於用gcc手工編譯,因為我們編譯必須按照特定的順序進行,否則安裝就會失敗。

 

**make命令:通過一個設定檔(專用於make的,源碼目錄下的Makefile,一般由configure指令碼產生)來調用gcc等編譯指令來完成一個軟體工程/軟體項目的編譯。

Makefile檔案:指定了要使用gcc先編譯哪個檔案[中的哪個片段],編譯完成此檔案後再編譯哪個檔案,編譯過程中使用什麼參數進行最佳化。

configure指令碼:用於產生Makefile檔案,此指令碼可以結合約一目錄下的Makefile.in檔案來產生Makefile ,configure指令碼一般由開發人員通過automake命令產生。

 

編譯安裝的一般步驟:

 

#cd Source_code/

#./configure  

運行目的:(1)檢查系統編譯環境,所需的編譯器、標頭檔、庫檔案等是否完備。

(2)接受使用者指定編譯配置選項,其中較常用的選項如下:

--help 擷取協助列表

--prefix 指定程式安裝的目錄 ----(例httpd程式)程式的二進位檔案都在此目錄下的bin、sbin、libexec(此目錄下檔案只能由其他程式調用執行)目錄。

--sysconfdir 指定程式設定檔的安裝目錄

--mandir            指定程式協助檔案的安裝目錄

這一步的執行過程記錄在目前的目錄下的config.log中,並且已經產生Makefile檔案,若這一步執行沒有任何錯誤,則進行下一步。

#make

開始根據Makefile檔案編譯原始碼,可以指定使用的編譯器(如icc,gcc)

若這一步執行沒有任何錯誤,則進行下一步。

#make install

就是將你編譯好的檔案放到你指定的目錄中去

安裝後二進位檔案位置為:/--prefix指定的目錄/bin

                                               /--prefix指定的目錄/sbin

                                               /--prefix指定的目錄/libexec(此目錄下檔案只能由其他程式調用執行)

安裝後庫檔案位置為:/--prefix指定的目錄/lib

安裝後設定檔位置為:/--prefix指定的目錄/conf

安裝後協助檔案位置為:/--prefix指定的目錄/[share]/man

安裝後標頭檔位置為:/--prefix指定的目錄/include

 

 

 

 

***安裝後要修改的各個搜尋路徑如下

1)  修改命令搜尋路徑的值:PATH,將二進位檔案的目錄包含進去。

例:vi /etc/profile.d/apache.sh  輸入

export PATH=/usr/local/apache/bin:$PATH

:x #source /etc/profile.d/apache.sh

#hash –d(清空hash緩衝)

#apachectl  start#hash(查看命令調用路徑)

2)  修改庫檔案搜尋路徑的值:(每一個程式的運行都要依賴於庫檔案的,尤其是apache的開發庫以及程式運行依賴的庫都在/--prefix指定的目錄/lib下,我們可以通過ldd命令查看二進位程式所依賴的庫檔案名稱及其所在的路徑,這些庫檔案找不到的話二進位程式就無法正常運行(會報錯!))

***庫檔案的搜尋路徑的修改在設定檔/etc/ld.so.conf或/etc/ld.so.conf/*.conf檔案(/etc/ld.so.conf檔案會包含這些檔案,可以自己建立一個檔案,以.conf為尾碼,把新增的庫檔案路徑寫進去即可)中。

***ldconfig命令讓系統根據設定檔/etc/ld.so.conf或/etc/ld.so.conf/*.conf檔案重新搜尋當前系統上的每一個庫檔案,並產生快取檔案/etc/ld.so.cache,系統通過這個快取檔案來尋找庫檔案,因此我們每新加一個庫檔案路徑就必須讓這個快取檔案重建。

 

執行個體:#vi /etc/ld.so.conf.d/apache.conf 輸入

/usr/local/apache/lib

:x儲存退出

#ldconfig  -v(讓快取檔案/etc/ld.so.cache重建,並顯示產生緩衝的過程,哪個目錄下有哪些庫檔案!)

#ldconfig -v|grep  /usr/local/apache/

#ldconfig  -v|less

3)匯出man檔案(設定檔不需要被匯出):匯出/--prefix指定的目錄/下的man目錄,即man1,man8目錄的父目錄,協助檔案搜尋路徑在設定檔:/etc/man.config中,加一行MANPATH    ”……程式協助檔案所在路徑……….”即可

例:#vi  /etc/man.config 找到MANPATH關鍵字,加一行

MANPATH /usr/local/apache/man                :x儲存退出

#man  httpd

***如果不確定是否為對應版本程式的apache協助檔案,可以用命令指定協助檔案的搜尋路徑

#man  -M  /usr/local/apache/man  httpd

  • 標頭檔匯出(可以使用軟連結,將程式標頭檔目錄連結至系統標頭檔目錄:/usr/include)

執行個體

#ln  -sv  /usr/local/apache/include  /usr/include/httpd

也可以單獨連結但是不便於管理!# ln  -sv  /usr/local/apache/include/*  /usr/include/

#ldd /usr/local/apache/bin/httpd(若程式轉移至其他系統上,缺少依賴的庫檔案是無法啟動並執行)

 

*****至此源碼安裝完成!!!

執行個體:linux下支援多線程、斷點續傳的下載工具axel

#查看readme

#./configure  --help

#./configure –prefix=/usr/local/axel 

#make &&  make  install

#man –M / usr/local/axel/share/man  axel

#/ usr/local/axel/ -n 5(開5個下載線程)  -o  /root(下載到/root目錄)  ftp://......./....iso

支援斷點續傳,終止它重新下載試試!


本文出自 “就讓我更餓一點” 部落格,請務必保留此出處http://ufirst.blog.51cto.com/7628670/1432603

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.