如何在Ubuntu上編譯和安裝源代碼

Geoffrey Carr

目錄:

如何在Ubuntu上編譯和安裝源代碼
如何在Ubuntu上編譯和安裝源代碼
Anonim
Ubuntu和其他Linux發行版擁有豐富的軟件包存儲庫,可以為您節省編譯任何內容的麻煩。儘管如此,有時你會發現一個不起眼的應用程序或一個新版本的程序,你必須從源代碼編譯。
Ubuntu和其他Linux發行版擁有豐富的軟件包存儲庫,可以為您節省編譯任何內容的麻煩。儘管如此,有時你會發現一個不起眼的應用程序或一個新版本的程序,你必須從源代碼編譯。

您不必是程序員就可以從源代碼構建程序並將其安裝在您的系統上;你只需要了解基礎知識。只需幾個命令,您就可以像專業人士一樣從源代碼構建。

安裝所需的軟件

在Ubuntu的軟件包存儲庫中安裝build-essential軟件包會自動安裝從源代碼編譯所需的基本軟件,如GCC編譯器和其他實用程序。通過在終端中運行以下命令來安裝它:

sudo apt-get install build-essential

鍵入Y並按Enter鍵以在出現提示時確認安裝。
鍵入Y並按Enter鍵以在出現提示時確認安裝。

獲取源包

現在您需要所需應用程序的源代碼。這些包通常使用.tar.gz或.tar.bz2文件擴展名的壓縮文件。

作為一個例子,讓我們嘗試從源代碼編譯Pidgin - 也許還有一個尚未打包的新版本,現在我們想要它。找到程序的.tar.gz或.tar.bz2文件並將其保存到您的計算機。

.tar.gz或.tar.bz2就像一個.zip文件。要使用它,我們必須提取其內容。
.tar.gz或.tar.bz2就像一個.zip文件。要使用它,我們必須提取其內容。

使用此命令提取.tar.gz文件:

tar -xzvf file.tar.gz

或使用此命令提取.tar.bz2文件:

tar -xjvf file.tar.bz2

最終會得到一個與源代碼包同名的目錄。使用cd命令輸入它。
最終會得到一個與源代碼包同名的目錄。使用cd命令輸入它。
Image
Image

解決依賴關係

進入解壓縮目錄後,運行以下命令:

./configure

(請注意,某些應用程序可能不使用./configure。請檢查應用程序解壓縮文件夾中的“README”或“INSTALL”文件,以獲取更具體的說明。)

(./部分告訴Bash shell在當前目錄中查找“configure”文件並運行它。如果省略./,Bash會在系統目錄中查找名為“configure”的程序,如/ bin和/ USR /箱)。
(./部分告訴Bash shell在當前目錄中查找“configure”文件並運行它。如果省略./,Bash會在系統目錄中查找名為“configure”的程序,如/ bin和/ USR /箱)。

./configure命令檢查系統以獲取構建程序所需的軟件。

除非你很幸運(或者你的系統上已經有很多必需的軟件包),否則你會收到錯誤消息,表明你需要安裝某些軟件包。在這裡,我們看到一條錯誤消息,說明他們的系統上沒有intltool腳本。我們可以使用以下命令安裝它們:
除非你很幸運(或者你的系統上已經有很多必需的軟件包),否則你會收到錯誤消息,表明你需要安裝某些軟件包。在這裡,我們看到一條錯誤消息,說明他們的系統上沒有intltool腳本。我們可以使用以下命令安裝它們:

sudo apt-get install intltool

安裝所需軟件後,再次運行./configure命令。如果您需要安裝其他軟件,請使用以下命令重複此過程 sudo apt-get install 命令直到./configure成功完成。並非每個必需的包都具有您在錯誤消息中看到的確切名稱 - 您可能需要Google的錯誤消息來確定所需的包。

如果您嘗試編譯的程序的舊版本已經在Ubuntu的軟件存儲庫中,那麼您可以使用 sudo apt-get build-dep 命令。例如,如果我跑 sudo apt-get build-dep pidgin ,apt-get將自動下載並安裝我編譯Pidgin所需的所有依賴項。如您所見,您需要的許多軟件包都以此為終結 -dev.

一旦./configure成功完成,您就可以編譯並安裝該軟件包了。
一旦./configure成功完成,您就可以編譯並安裝該軟件包了。
Image
Image

編譯和安裝

使用以下命令編譯程序:

make

此過程可能需要一些時間,具體取決於您的系統和程序的大小。如果./configure成功完成,make應該沒有任何問題。當程序編譯時,您將看到文本行滾動。

Image
Image

此命令完成後,程序已成功編譯 - 但它未安裝。使用以下命令將其安裝到您的系統:

sudo make install

它可能存儲在您系統上的/ usr / local下。 / usr / local / bin是系統路徑的一部分,這意味著我們只需輸入“ 洋涇浜 “進入一個終端,不用大驚小怪地發射Pidgin。

如果要稍後安裝,請不要刪除程序的目錄 - 您可以從目錄運行以下命令以從系統中卸載程序:
如果要稍後安裝,請不要刪除程序的目錄 - 您可以從目錄運行以下命令以從系統中卸載程序:

sudo make uninstall

Ubuntu的Update Manager不會自動更新以這種方式安裝的程序,即使它們包含安全漏洞也是如此。除非您需要特定的應用程序或版本不在Ubuntu的軟件存儲庫中,否則堅持使用您的發行版的官方軟件包是個好主意。

我們在這裡沒有涉及很多高級技巧 - 但是,希望編譯自己的Linux軟件的過程不再那麼可怕了。

熱門話題