Ubuntu 安裝軟體教學:從原始碼編譯、make install 到常見錯誤排除

1. 前言

在使用 Ubuntu 的過程中,安裝軟體時經常會遇到「make install」這個步驟。一般來說,應用程式的安裝多半透過「apt」指令完成套件安裝,但並非所有軟體都收錄於官方套件庫。如果想要使用最新版軟體或執行自行開發的程式,就需要下載原始碼,手動編譯(build)與安裝。

這時,「make install」就派上用場了。

「make install」是一個用來將從原始碼編譯好的程式自動安裝到適當位置的指令。不僅完成編譯(make),還會自動將檔案複製到系統目錄。這是 Linux 環境中非常常見的基礎作業流程之一。

本教學將以簡明易懂的方式,說明如何在 Ubuntu 上編譯原始碼並透過 make install 安裝軟體,讓初學者也能輕鬆上手。針對常見錯誤與對應解法也會一併說明。

首先,讓我們從準備編譯所需的開發工具開始。

2. 安裝必要的開發工具

若要編譯並安裝原始碼,首先需要在 Ubuntu 安裝一套必要的開發工具。如果環境沒準備好,可能會無法執行「make」指令,或是經常遇到編譯錯誤。建議先建立好開發環境,以便順利完成後續作業。

安裝必要套件「build-essential」

Ubuntu 提供了一個名為「build-essential」的套件,裡面包含 C 編譯器(gcc)、編譯工具(make)及相關函式庫。只要安裝這個套件,即可快速建好基本的編譯環境。

安裝步驟如下:

sudo apt update
sudo apt install build-essential

先更新套件資訊,再安裝 build-essential。這樣基本的編譯工具就準備好了。

安裝後的運作確認

可以透過以下指令檢查是否安裝成功:

gcc --version
make --version

只要能顯示出 gcc(C 編譯器)與 make(編譯工具)的版本資訊,就代表安裝沒問題。如果遇到錯誤,請確認安裝過程,或重試安裝。

現在已經準備好在 Ubuntu 上進行原始碼編譯。下一步,將說明如何取得並解壓原始碼。

3. 下載與解壓原始碼

完成開發工具安裝後,接下來就要下載要編譯的原始碼。這步驟通常是從軟體官方網站下載原始碼,然後解壓縮到作業目錄。以下會介紹取得與解壓原始碼的方法。

取得原始碼的方法

常見的取得方式有以下幾種:

從官方網站下載

多數開源專案會在官方網站提供「tar.gz」、「tar.bz2」等壓縮檔格式。可用以下指令下載:

wget https://example.com/software-1.2.3.tar.gz

請將 URL 替換為各軟體的下載頁提供的連結。

從 GitHub 等平台 clone 原始碼

現在很多專案都放在 GitHub 等程式碼託管平台,可用 Git 指令 clone 原始碼。

若尚未安裝 Git,請先執行:

sudo apt install git

然後執行 clone:

git clone https://github.com/username/repository.git

每個專案的 repository URL 都不同,請以官方說明為準。

解壓縮壓縮檔

下載到壓縮檔時,請用相對應的指令解壓:

  • .tar.gz 格式:
  tar -xvzf software-1.2.3.tar.gz
  • .tar.bz2 格式:
  tar -xvjf software-1.2.3.tar.bz2
  • .zip 格式:
  unzip software-1.2.3.zip

解壓後會產生一個帶有軟體名稱與版本的資料夾,進入該資料夾開始後續作業。

cd software-1.2.3

至此,已可開始進行軟體的編譯作業。接下來會說明實際的編譯與安裝步驟。

4. 編譯與安裝步驟

當原始碼準備好之後,就可以進行編譯與安裝。這一章會詳解在 Ubuntu 常見的標準流程。

編譯前的設定:執行 ./configure

大部分原始碼會提供「設定腳本」,在編譯前進行環境檢查與配置。於原始碼目錄執行:

./configure

此指令會自動檢查系統狀態並產生 Makefile(編譯步驟檔案)。若有缺少必要套件或函式庫,這步驟會跳出錯誤訊息,請根據提示安裝所需套件。

如果沒有 configure,請查看目錄下的 READMEINSTALL 文件,查閱正確的編譯方式。

編譯軟體:執行 make

完成設定後,進行編譯,也就是將原始碼轉換成執行檔:

make

這會根據 Makefile 指示自動編譯。若出現錯誤,請根據訊息處理相依性或套件問題。

安裝程式:sudo make install

編譯完成後,使用以下指令將程式安裝至系統目錄(如 /usr/local/bin):

sudo make install

如此一來,編譯好的檔案會複製到正確位置,全系統都能使用。

常見錯誤與解法

在編譯及安裝過程中,常見的錯誤有:

  • Permission denied(權限錯誤)
    → 請確認 make install 前加上 sudo
  • Missing dependencies(缺少相依套件)
    → 根據錯誤訊息安裝所需套件或函式庫。
  • configure: command not found
    → 可能沒有 configure 檔,或沒執行權限。請給予權限 chmod +x configure,或重新查閱編譯方式。

遇到錯誤時不要慌張,耐心閱讀訊息,逐步排除問題。

5. 安裝後的確認

透過「sudo make install」安裝完成後,請務必確認軟體是否正確安裝。如未安裝成功,可能無法找到指令或運作異常。本章將說明基本的確認方式。

確認程式安裝路徑

可用 which 指令查詢程式路徑:

which 程式名稱

例如安裝了 sample,請輸入:

which sample

若出現 /usr/local/bin/sample/usr/bin/sample 之類的路徑,表示安裝正確。若沒顯示結果,可能是安裝失敗或路徑未加入。

以版本資訊確認運作

多數程式可用 --version-v 參數查詢版本,這是簡單驗證方式:

sample --version

正確顯示版本即代表安裝成功。若有錯誤或指令不存在,請重新檢查安裝流程。

確認 PATH 環境變數

許多經由 make install 安裝的程式會放在 /usr/local/bin。若此路徑未加到 PATH,就無法直接執行。

可用以下指令查詢目前 PATH 設定:

echo $PATH

只要列表中有 /usr/local/bin 就沒問題。若沒有,請在 shell 設定檔(如 ~/.bashrc~/.zshrc)新增:

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

輸入後,重新啟動終端機或執行:

source ~/.bashrc

這樣就可以直接執行新安裝的程式了。

6. 移除安裝程式的方法

從原始碼安裝的程式並不會由 apt 管理,因此不需要時必須手動移除。這章將介紹正確移除 make install 軟體的方法。

用 make uninstall 解除安裝

部分軟體的 Makefile 提供移除目標,可用以下指令自動移除檔案:

sudo make uninstall

這會自動刪除安裝時複製的檔案。不過不是每個軟體都支援,請先確認 README 或 INSTALL 有說明。

注意事項

  • 必須在原始碼目錄執行上述指令
  • 若原始碼目錄已刪除,無法使用 make uninstall

手動刪除檔案

若無法使用 make uninstall,就需自行刪除相關檔案。通常可在 /usr/local/bin/usr/local/lib 等路徑找到。

請確認安裝時複製了哪些檔案並小心刪除。例如:

sudo rm /usr/local/bin/程式名稱

手動刪除時,為避免遺漏,建議事先確認安裝目錄結構。

用 checkinstall 管理安裝與移除

若想更方便地移除軟體,建議用「checkinstall」工具。它可以將 make install 過程包裝成 deb 套件,之後用 apt 或 dpkg 移除。

安裝 checkinstall:

sudo apt install checkinstall

編譯完成後,改用以下指令安裝:

sudo checkinstall

如此可自動建立套件,方便將來移除,系統管理也更容易。經常從原始碼安裝軟體的使用者,強烈建議採用這個方法。

7. 離線環境下的安裝

有時會需要在無法連網的 Ubuntu 環境安裝軟體。通常 apt 會自動下載相依套件,但其實就算離線也能透過 make install 編譯安裝。這章會說明詳細流程。

離線準備 build-essential

必須先準備好 build-essential 開發工具。建議利用另一台可上網的 Ubuntu 先行下載。

使用 apt-offline 工具

apt-offline 可一次下載所有必需套件及相依性,然後用 USB 等媒介帶到離線主機。

請先於線上主機執行:

sudo apt install apt-offline

接下來,依 apt-offline 的流程建立請求檔、下載套件,再導入離線主機。

用 Ubuntu 安裝媒體當作套件來源

另一種方法是將 Ubuntu 安裝光碟或 USB 設為 apt 套件來源。光碟裡含有基本套件,可用於安裝 build-essential。

步驟如下:

sudo mount /dev/sdb1 /mnt
sudo apt-cdrom -d=/mnt add

之後就能正常安裝套件:

sudo apt update
sudo apt install build-essential

利用此法即使無網路也能建好開發環境。

帶入原始碼並解壓

在線上先下載好原始碼,複製到離線主機後再解壓:

tar -xvzf software-1.2.3.tar.gz
cd software-1.2.3

接著就能照標準流程 ./configuremakesudo make install 編譯安裝。

注意事項

離線安裝時最容易缺少相依套件,請事先在線上環境確認有哪些必要函式庫,並一併下載。建議先在有網路的主機編譯一次,以便列出所需套件清單。

8. 常見問題(FAQ)

在 Ubuntu 上用「make install」安裝軟體時,初學者至進階者都會遇到各種疑問與問題。本章整理了常見問題與解答。

Q1. 執行 make install 時出現「Permission denied」怎麼辦?

A1.
「make install」需要有管理員權限,請務必加上 sudo 執行。

正確範例:

sudo make install

如此即可正常進行安裝。

Q2. 執行 ./configure 時出現「No such file or directory」怎麼辦?

A2.
這代表當前目錄下沒有 configure 腳本。原因可能有:

  • 原始碼下載不完整
  • 專案不使用 autotools,可能改用 CMake 等工具
  • configure 沒有執行權限

請確認是否有 configure,若沒有,請詳讀專案附帶的 READMEINSTALL 文件。

Q3. 顯示找不到 make 指令怎麼辦?

A3.
這表示還沒安裝編譯工具。請先執行:

sudo apt update
sudo apt install build-essential

build-essential 內含 make 及主要編譯工具。

Q4. 離線安裝 build-essential 怎麼辦?

A4.
可於另一台有網路的 Ubuntu 預先下載好所有必需套件,帶到離線主機再安裝。主要方法有:

  • 利用 apt-offline 工具一次抓下相依套件
  • Ubuntu 安裝光碟 當作 apt 套件來源

用安裝媒體是最穩定且簡便的方法。

9. 結語

「make install」是 Ubuntu 下從原始碼安裝軟體時不可或缺的重要步驟。不依賴套件管理系統,能自由安裝最新或客製版軟體,是 Linux 環境的一大優勢。

本篇文章從開發工具準備、原始碼取得、編譯、安裝,到移除方法及離線對策,都做了詳細說明。只要掌握這些流程,遇到陌生軟體也不會手忙腳亂。

針對常見錯誤與疑難雜症,也以 FAQ 方式進行整理。其實只要了解基本觀念,Linux 編譯作業並不難。

想在 Ubuntu 上嘗試更多軟體的朋友,務必熟悉「make install」這套流程,打造屬於自己的彈性開發與運用環境!