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
,請查看目錄下的 README
或 INSTALL
文件,查閱正確的編譯方式。
編譯軟體:執行 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
接著就能照標準流程 ./configure
→ make
→ sudo 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
,若沒有,請詳讀專案附帶的 README
或 INSTALL
文件。
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」這套流程,打造屬於自己的彈性開發與運用環境!