Linux基礎:從源碼安裝軟體

來源:互聯網
上載者:User

標籤:文字檔   執行檔案   詳細資料   原始碼   開發商   

為什麼要從源碼安裝軟體

    在什麼情況之下,我們需要從原始碼安裝軟體呢?我想不外乎這些情形:一種情況是軟體放出了新的版本,而所用的發行版並沒有及時跟進,這時候,想要嘗鮮的話,就非得靠自己不可;另一種情形是不管是軟體的開發人員,還是現用的系統都沒有提供可直接使用的二進位包,而自己又非要使用該軟體,那麼也需親自出馬才行;當然,還有其他的情形。總而言之,學會從原始碼安裝軟體是一項非常重要的技能。

什麼是make 與 configure

    make 是一支程式,當執行make 時,make 會在目前的目錄下尋找 makefile 這個文字檔。 makefile 中定義了源碼是如何編譯的詳細資料,如何調用 gcc對原始碼進行編譯產生目標檔案,如何連結產生可執行檔。

    makefile 是如何產生的呢? 通常,軟體開發商都會提供一個檢測程式來檢測使用者的作業系統環境,該程式檢測完畢之後,就會主動的建立這個makefile 。

準備工作

    那麼,要如何才能從原始碼安裝軟體呢?首先,你必須要做好為編譯原始碼所需的準備工作。這包括兩個方面:

  1. 編譯工具:要將原始碼編譯成可執行檔二進位檔案,編譯工具必不可少: gcc , g++ , make , autoconfig 等等。在CentOS系列中,可以通過 yum -y groupinstall "Development Tools" 來安裝。在 Ubuntu 中,可以從終端中執行 sudo apt-get install build-essential 指令來安裝基本的編譯工具。根據所編譯器的實際情況,你也可能需要安裝其他一些工具。

  2. 編譯依賴:除了安裝基本的編譯工具之外,為了順利編譯原始碼,我們也要把該程式所需要的依賴安裝好。包含系統提供的庫函數, 以及第三方軟體的依賴包。在CentOS系列中,可以通過 yum -y install  xxxx   xxxx-devel 來安裝相應的依賴包。Ubuntu 系統可以通過 sudo apt-get build-dep 命令後跟包名的方式來準備所需的依賴。一般情況下,如果 configure 或者 make 報錯,其報錯資訊都明確的指出缺少依賴,只需按要求做即可。或者把錯誤資訊複製到 google 一下,即可愉快的解決。


源碼安裝3部曲: ./configure ; make && make install

    在編譯原始碼之前,你一定把軟體的源碼包下載到了自己的硬碟上吧。一般而言,程式源碼包經常被打包成 .tar.gz 和 .tar.bz2 這兩種格式。前者可用 tar zxvf *.tar.gz 來解包,後者則用 tar jxvf *.tar.bz2。通常情況建議解壓到 /usr/local/src 目錄: # tar xf *.tar.gz -C /usr/local/src

    通常,在解包後,我們應該閱讀程式附帶的相關說明檔案,如 README(讀我檔案)、INSTALL(安裝檔案)等,以便瞭解程式的編譯介紹。這一步超級重要!!!

當所有的事情都準備妥當了後,那麼讓我們來進行原始碼編譯的三部曲吧。

  1. 配置,建立makefile檔案:這是編譯原始碼的第一步,通過 ./configure 命令完成。執行此步以便為編譯原始碼作準備。常用的選項有 --prefix=PREFIX,用以指定程式的安裝位置。更多的選項可通過 --help 查詢。也有某些程式無需執行此步。

  2. 編譯:一旦配置通過,可即刻使用 make 指令根據makefile的定義,調用 gcc 來執行原始碼的編譯過程。視軟體的具體情況而定,編譯所需的時間也各有差異,我們所要做的就是耐心等候和靜觀其變。此步雖然僅下簡單的指令,但有時候所遇到的問題卻十分複雜。較常碰到的情形是程式編譯到中途卻無法圓滿結束。此時,需要根據出錯提示分析以便找到應對之策。需要執行 make clean , 然後再重新執行 make 指令。

  3. 安裝:如果編譯沒有問題,那麼執行 make install 就可以將程式安裝到系統中了。

需要注意的是:上面的步驟必須一步一步的進行,只要其中的一個步驟無法成功,那麼後續就完全沒有辦法再進行。


管理:目錄規劃,卸載,升級
  • 源碼通常解壓到 /usr/local/src 目錄

  • 安裝時最好安裝在 /usr/local 目錄

  • 將 軟體的 man page 加入 man path 中, 編輯 /etc/man.config ,增加 MANPATH  項。

  • 把軟體的 bin 目錄加入到 PATH 環境變數, 編輯 /etc/profile.d/xxxx.sh, 增加 export PATH=$PATH:/usr/local/xxx/bin

若是覺得所編譯的軟體不夠適用想要刪除,又如何做呢?我們只需轉到編譯原始碼的目錄,執行 sudo make uninstall 命令。


本文出自 “Share your knowledge” 部落格,請務必保留此出處http://skypegnu1.blog.51cto.com/8991766/1626265

Linux基礎:從源碼安裝軟體

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.