跳轉到

建立 2026-09-14 更新 2026-09-14

套件管理

套件管理器負責下載、安裝、更新、移除軟體,並處理相依性。發行版不同,指令就不一樣;觀念相同:先更新索引,再安裝,最後才考慮從原始碼自己編譯。

先認出發行版

source /etc/os-release
echo $ID $VERSION_ID
  • Debian / Ubuntu / Mint → apt
  • RHEL / Rocky / Alma / Fedora → dnf(舊教材可能寫 yum

本站範例以 Ubuntu 為主。

日常指令

sudo apt update
sudo apt install nginx
sudo apt remove nginx
sudo apt upgrade
apt search nginx
apt show nginx
which nginx

update 只更新「有哪些套件」的清單,不會升級軟體。upgrade 才真的裝新版本。

sudo dnf install nginx
sudo dnf remove nginx
sudo dnf upgrade
dnf search nginx
dnf info nginx

dnf 會在安裝時自動刷新中繼資料,通常不必先跑一條獨立的 update。

這套件從哪來、裝了什麼

dpkg -L nginx | head
apt-file search bin/sshd

找不到指令時,先確認套件名是不是跟指令名相同(例如 python3 套件提供 python3 指令)。安裝後用 type / which 確認路徑。

什麼時候不要用套件管理器

  • 官方套件太舊,專案文件指定用官方二進位、snap、flatpak 或上游的安裝腳本
  • 語言生態本身有套件工具(Python 的 uv/pip、Node 的 npm)——系統 Python 套件與專案虛擬環境不要混

不要習慣性 curl | sudo bash

非官方一鍵腳本等於把未知程式交給 root。能走套件庫或官方文件裡的儲存庫設定,就走那條。

總結

認出發行版 → apt updateapt install。升級系統前先看 disk 空間與正在跑的服務。裝完的服務要用 systemctl 啟動。