Linux下原始碼包安裝軟體

2021-10-05 07:25:09 字數 1974 閱讀 1038

linux下原始碼安裝一般包括以下步驟:

加粗樣式獲取原始碼

解壓建立makefile檔案

生成makefile檔案

編譯執行make clean;make命令將原始碼編譯成二進位制檔案。

下來我們看看編譯過程的實現是怎麼樣的?

將原始碼編譯成可供linux執行的二進位制檔案一共需要兩步:

1.使用gcc編譯器將原始碼編譯成目標檔案

2. 再次使用gcc編譯器將目標檔案鏈結成二進位制檔案

這過程看似簡單,實則不然。乙個軟體的源**往往被封裝在多個原始檔中,此外這些檔案有錯綜複雜的依賴關係,編譯需要嚴格按照指定的順序進行,這無疑增加了編譯的難度。好在make命令可以幫助我們簡化編譯過程。

整個編譯過程被濃縮在makefile檔案中,當執行make命令時,make會去當前目錄中尋找makefile檔案,並根據該檔案中的要求完成整個編譯過程。

安裝過程中具體所用命令如下,大家可以參考

一、解壓:

最常見原始碼包的就兩種(***x.tar.gz or ***x.tar.bz2),其實這些原始碼包都是由2個工具壓縮而成的,tar.gz結尾的檔案用到的工具是tar和gunzip,而tar.bz2結尾的檔案所使用的工具是tar和bzip2,之所以這樣做是因為,tar僅僅能夠打包多個檔案但是沒有壓縮的功能,而gz和bz2卻剛好相反,僅能夠壓縮單個檔案,這樣我們常見的原始碼包實際上是通過tar先將不同的原始檔打包,然後再通過gunzip或者bzip2壓縮後發布的。

解壓的相關命令如下:

$ tar zxvf ***x.tar.gz

$ tar jxvf ***x.tar.bz2

二、./configure:

壓完成就正式開始安裝了(補充一點,開始configure之前,如有必要,請使用patch工具為原始碼打上相應的補丁),首先跳轉到原始碼的解壓目錄,眾所周知,開始configure前還是應該仔細閱讀原始碼目錄下的readme或者install檔案,好多安裝中的注意事項在這裡都有所羅列,configure實際上是乙個指令碼檔案,在當前目錄中鍵入"./configure",shell就會執行當前目錄下的configure指令碼,有一點必須說明,在整個configure過程,其實編譯尚未進行,configure僅僅是做編譯相關的準備工作,它主要對您當前的工作平台做一些依賴性檢查,比如編譯器是否安裝,聯結器是否存在,如果在檢測的過程沒有任何錯誤,你很幸運,configure指令碼會在當前目錄下生成下一步編譯鏈結所要用到的另乙個檔案makefile,當然configure支援及其豐富的命令列引數,可以鍵入"./configre --help"獲取具體的資訊,最常用的就是:

$ ./configure --prefix=/opt/***,它用來設定軟體的安裝目錄.

三、make:

如果configure過程正確完成,那麼在原始碼目錄,會生成相應的makefile檔案,makefile檔案簡單來說包括的是一組檔案依賴關係以及編譯鏈結的相關步驟,事實上真正的編譯鏈結工作也不是make所做的,make只是乙個通用的工具,一般情況下,make會根據makefile中的規則呼叫合適的編譯器編譯所有與當前軟體相依賴的原始碼,生成所有相關的目標檔案,最後再使用鏈結器生成最終的可執行程式:
$ make

四、make install:

當上面兩個步驟正確完成,代表著編譯鏈結過程已經完全結束,最後要做的就是將可執行程式安裝到正確的位置,在這個步驟,普通使用者可能沒有相關目錄的操作許可權,臨時切換到root是乙個不錯的選擇,"install"只是makefile檔案中的乙個標號,「make install"代表著make工具執行makefile檔案中"install"標號下的所有相關操作,如果在configure階段沒有使用」–prefix=/opt/***"指定應用程式的安裝目錄,那麼應用程式一般會被預設安裝到/usr/local/bin,如果/usr/local/bin已經存在於您的path中,那麼安裝已經基本結束。

Linux 原始碼包安裝軟體

在linux bsd系統中,軟體包主要以兩種形式出現 二進位製包以及源 包。之前一直說的rpm包就是屬於二進位製包,也就是已經編譯好的軟體包.這裡說源 包則主要適用於自由軟體的安裝,使用者需要自己編譯它們。一般是我們手動指定安裝在 usr local下,相當於windows下是program fil...

linux下原始碼安裝軟體

make與configure 當執行 make 時,make 會在當時的目錄下搜尋 makefile or makefile 這個檔案,而 makefile 裡面則記錄了原始碼如何編譯的詳細資訊!make 會自動的判別原始碼是否經過變動了,而自動更新執行檔。因為軟體商都是針對unix like進行開...

Linux之原始碼包安裝軟體

安裝準備 安裝c語言編輯器 gcc 壓縮包 node v6.2.0 linux x64.tar.gz 原始碼包儲存位置 usr local src 原始碼包安裝位置 usr local 軟體名 解壓縮 tar zxvf node v6.2.0 linux x64.tar.gz 進入解壓縮目錄 cd ...