Ubuntu和其他Linux發行版有大量的軟體包儲存庫,可以避免自己編譯任何東西的麻煩。不過,有時您會發現一個晦澀難懂的應用程式或一個必須從原始碼處編譯的程式的新版本。
你不必成為一個程式設計師,從原始碼構建程式並將其安裝到系統上;你只需要知道基本知識。只需使用幾個命令,您就可以像pro那樣從原始碼構建。
在Ubuntu的包儲存庫中安**uild-essential包會自動安裝從原始碼處編譯所需的基本軟體,如GCC編譯器和其他實用程式。透過在終端中執行以下命令進行安裝:
sudo apt-get install build-essential
鍵入Y並在出現提示時按Enter鍵確認安裝。
現在您需要所需應用程式的原始碼。這些包通常是壓縮檔案中的。焦油.gz或者。焦油bz2副檔名。
舉個例子,讓我們試著從原始碼處編譯Pidgin——也許有一個更新的版本還沒有打包,我們現在就需要它。找到程式的。焦油.gz或者。焦油bz2檔案並儲存到您的計算機。
一個。焦油.gz或者。焦油bz2就像.zip檔案。要使用它,我們必須提取它的內容。
使用此命令提取。焦油.gz檔案:
tar -xzvf file.tar.gz
或者使用此命令提取一個。焦油bz2檔案:
tar -xjvf file.tar.bz2
您將得到一個與原始碼包同名的目錄。使用cd命令輸入。
進入提取目錄後,執行以下命令:
./configure
(請注意,某些應用程式可能不使用./configure。檢視應用程式解壓資料夾中的“README”或“INSTALL”檔案以獲取更具體的說明。)
(./part告訴bashshell在當前目錄中查詢“configure”檔案並執行它。如果省略了./,Bash將在/bin和/usr/bin等系統目錄中查詢名為“configure”的程式。)
./configure命令檢查您的系統是否有生成程式所需的軟體。
除非你很幸運(或者你的系統上已經有很多必需的軟體包),否則你會收到錯誤訊息,表明你需要安裝某些軟體包。在這裡,我們看到一條錯誤訊息,說intltool指令碼在他們的系統上不存在。我們可以使用以下命令安裝它們:
sudo apt-get install intltool
安裝所需軟體後,再次執行./configure命令。如果需要安裝其他軟體,請使用sudo apt get install命令重複此過程,直到。/configure成功完成。並非每個必需的包都會有錯誤訊息中所看到的確切名稱——您可能需要對錯誤訊息進行谷歌以確定所需的包。
如果你試圖編譯的程式的舊版本已經在Ubuntu的軟體庫中,你可以用sudo apt get build dep命令作弊。例如,如果我執行sudo apt get build dep pidgin,apt get將自動下載並安裝編譯pidgin所需的所有依賴項。如您所見,您將需要的許多包都以-dev結尾。
一旦./configure成功完成,就可以編譯和安裝包了。
使用以下命令編譯程式:
make
此過程可能需要一些時間,具體取決於您的系統和程式的大小。如果./configure成功完成,make應該不會有任何問題。當程式編譯時,您將看到一行行文字滾動而過。
此命令完成後,程式將成功編譯,但尚未安裝。使用以下命令將其安裝到系統中:
sudo make install
它可能儲存在系統的/usr/local下。/usr/local/bin是系統路徑的一部分,這意味著我們只需在終端中鍵入“pidgin”就可以毫不費力地啟動pidgin。
如果以後要安裝程式,請不要刪除該程式的目錄-可以從該目錄執行以下命令從系統中解除安裝該程式:
sudo make uninstall
以這種方式安裝的程式不會被Ubuntu的更新管理器自動更新,即使它們包含安全漏洞。除非您需要一個特定的應用程式或版本,而這個應用程式或版本不在Ubuntu的軟體庫中,否則最好還是堅持使用發行版的官方軟體包。
這裡有很多高階技巧我們還沒有介紹,但是,希望編譯自己的Linux軟體的過程不再那麼可怕。
... 在編譯核心之前,您需要告訴GCC您希望如何完成它。您可以使用名為make的命令列工具來執行此操作。鍵入以下命令: ...
...下面列出的所有更新。如果你還沒有得到macOS Sierra,找出如何得到它和你錯過了什麼。 ...
...都使用GRUB引導載入程式,預設情況下,它會詢問您希望如何引導作業系統,並給您10秒鐘的時間來做出決定。 ...
... 下面介紹如何建立一個簡單的Swift程式,並在windows10中編譯和執行它。 ...