Linux 套件與磁碟管理

Enterprise Linux 系統套件管理(RHEL / CentOS / AlmaLinux)

rpm 套件管理

RPM 是 Red Hat 系系統的套件格式。

  • 安裝 RPM 套件:
rpm -ivh foo.rpm
  • 查詢已安裝套件:
rpm -qa
  • 查詢某檔案屬於哪個套件:
rpm -qf /etc/passwd
  • 查詢某個已安裝套件的檔案清單:
rpm -ql foo
  • 查詢尚未安裝的 rpm 檔案內容:
rpm -qpl foo.rpm

dnf / yum 套件管理

dnfyum 的後繼者,於 RHEL 8 後成為預設套件管理工具。

  • 查詢套件是否存在:
dnf list httpd
  • 安裝套件:
dnf install httpd
  • 移除套件:
dnf remove httpd
  • 查詢安裝歷史:
dnf history
  • 查詢檔案來自哪個套件:
dnf provides '*bin/mail'

Debian / Ubuntu 系統套件管理(.deb 格式)

apt 指令(高階套件管理工具)

apt 是整合型工具,提供套件管理的常用指令,適合互動使用。

  • 更新套件清單(建議每次安裝前執行):
sudo apt update
  • 升級所有可升級套件:
sudo apt upgrade
  • 安裝套件:
sudo apt install nginx
  • 移除套件(保留設定檔):
sudo apt remove nginx
  • 完整移除套件(包含設定檔):
sudo apt purge nginx
  • 自動移除不再需要的套件:
sudo apt autoremove
  • 查詢套件名稱關鍵字:
apt search nginx
  • 顯示已安裝套件的詳細資訊:
apt show nginx
  • 查詢可升級套件:
apt list --upgradable

dpkg 指令(底層套件管理工具)

dpkg 是最底層的 .deb 套件操作工具,適用於本地安裝或查詢。

  • 安裝 .deb 檔案:
sudo dpkg -i foo.deb
  • 修復相依性(搭配 dpkg 安裝後出現依賴錯誤時使用):
sudo apt install -f
  • 查詢檔案是由哪個套件安裝的:
dpkg -S /usr/bin/top
  • 顯示所有已安裝套件:
dpkg -l
  • 顯示套件的檔案清單:
dpkg -L nginx

apt-cache(查詢用工具,現已整併至 apt)

  • 查詢套件詳細資訊:
apt-cache show nginx
  • 查詢提供特定指令或檔案的套件:
apt-file search /usr/bin/mail

使用 apt-file 需先安裝並更新索引:

sudo apt install apt-file
sudo apt-file update

磁碟管理

查詢磁碟使用情況

  • 查詢各掛載點磁碟容量:
df -h
  • 查詢各掛載點 inode 使用量:
df -i

掛載新磁碟

/dev/sdb 掛載至 /mydata

  1. 查詢磁碟資訊:
lsblk
  1. 格式化磁碟為 xfs
sudo mkfs.xfs /dev/sdb
  1. 建立掛載點目錄:
sudo mkdir /mydata
  1. 掛載磁碟:
sudo mount /dev/sdb /mydata
  1. 測試讀寫:
sudo touch /mydata/test.txt
ls -l /mydata
  1. 確認掛載狀態:
df -h /mydata

開機自動掛載磁碟

  1. 備份 fstab 設定檔:
sudo cp -a /etc/fstab /etc/fstab_backup
  1. 取得磁碟 UUID:
blkid /dev/sdb

輸出範例:

/dev/sdb: UUID="2afefffd-xxxx-yyyy-zzzz-e7440e1aedac" TYPE="xfs"
  1. 編輯 /etc/fstab
sudo nano /etc/fstab

新增一行:

UUID=2afefffd-xxxx-yyyy-zzzz-e7440e1aedac /mydata xfs defaults 0 0
  1. 測試掛載設定是否正確:
sudo umount /mydata
sudo mount -a
df -h /mydata
  1. 重開機後確認自動掛載是否成功:
df -h /mydata