管理軟體是任何 Ubuntu Server 管理員的一項基本技能。無論您是在 Azure、AWS 或 GCP 等雲端環境中工作,還是管理地端基礎設施,了解 APT 等軟體套件管理工具對於維護安全、最佳化的系統至關重要。
在本指南中,我們將介紹安裝、更新和管理軟體的基礎知識,探討雲端特有的場景,排查常見問題,並提供實用範例,幫助您掌握 Ubuntu Server 管理。
往期文章:
01. Ubuntu Server 簡介 – SysOSX: AI & Cloud
02. 如何架設您的第一台 Ubuntu 伺服器:初學者指南 – SysOSX: AI & Cloud
03. 掌握 Ubuntu Server 的 Linux 命令列 – SysOSX: AI & Cloud
04. Ubuntu Server 使用者與權限管理:完整指南 – SysOSX: AI & Cloud
05. Ubuntu Server 網路基礎:完整指南 – SysOSX: AI & Cloud
1. 了解 Ubuntu 上的 APT 與軟體套件管理
Ubuntu Server 使用 APT (Advanced Package Tool)作為其主要的軟體套件管理員。APT 透過自動處理相依性並將存放庫用作套件的可信來源,簡化了軟體管理。
APT 的關鍵元件:
- apt:用於管理套件的命令列工具。
- dpkg:用於
.deb檔案的低階套件管理員。 - 存放庫:儲存和擷取 Ubuntu 套件的線上來源。
2. 使用 APT 安裝軟體
要在 Ubuntu Server 上安裝軟體,請使用 apt install 命令。
範例:安裝 Apache Web 伺服器
- 更新套件清單:
sudo apt update
輸出:
Hit:1 http://azure.archive.ubuntu.com/ubuntu noble InRelease
Get:2 http://azure.archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
Get:3 http://azure.archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB]
Get:4 http://azure.archive.ubuntu.com/ubuntu noble-security InRelease [126 kB]
Get:5 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages [922 kB]
Get:6 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Components [151 kB]
Get:7 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Components [364 kB]
Get:8 http://azure.archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Components [212 B]
Get:9 http://azure.archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Components [940 B]
Get:10 http://azure.archive.ubuntu.com/ubuntu noble-backports/main amd64 Components [7076 B]
Get:11 http://azure.archive.ubuntu.com/ubuntu noble-backports/universe amd64 Components [21.3 kB]
Get:12 http://azure.archive.ubuntu.com/ubuntu noble-backports/restricted amd64 Components [212 B]
Get:13 http://azure.archive.ubuntu.com/ubuntu noble-backports/multiverse amd64 Components [212 B]
Get:14 http://azure.archive.ubuntu.com/ubuntu noble-security/main amd64 Components [9024 B]
Get:15 http://azure.archive.ubuntu.com/ubuntu noble-security/universe amd64 Components [51.9 kB]
Get:16 http://azure.archive.ubuntu.com/ubuntu noble-security/restricted amd64 Components [208 B]
Get:17 http://azure.archive.ubuntu.com/ubuntu noble-security/multiverse amd64 Components [208 B]
Fetched 1907 kB in 1s (2778 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
15 packages can be upgraded. Run 'apt list --upgradable' to see them.
- 安裝 Apache:
sudo apt install apache2
3. 刪除軟體
如果您不再需要某個套件,可以使用 apt remove 或 apt purge 命令將其刪除。
範例:刪除 Apache
sudo apt remove apache2
輸出:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
apache2
...
After this operation, 2 MB disk space will be freed.
Do you want to continue? [Y/n]
要徹底刪除它,包括設定檔:
sudo apt purge apache2
4. 更新和升級套件
定期更新對系統安全性和穩定性至關重要。
命令:
- 更新套件清單
sudo apt update
- 升級已安裝的套件
sudo apt upgrade
- 完整升級(包括核心更新)
sudo apt full-upgrade
輸出:
The following packages will be upgraded:
linux-image-5.4.0-91-generic linux-headers-5.4.0-91-generic ...
Do you want to continue? [Y/n]
5. 管理存放庫
存放庫對套件管理至關重要。預設情況下,Ubuntu 使用官方存放庫,但可以根據需要新增、修改或刪除其他存放庫。
以 Deb822 格式管理存放庫
最近的 Ubuntu 版本已過渡到 Deb822 格式 進行存放庫管理。不再使用傳統的 /etc/apt/sources.list 檔案,而是透過 .sources 檔案來管理,這些檔案位於 /etc/apt/sources.list.d/ 目錄中。
查看目前存放庫
要查看目前的存放庫,請檢查 .sources 檔案,位置在 /etc/apt/sources.list.d/:
ls /etc/apt/sources.list.d/
例如:
cat /etc/apt/sources.list.d/ubuntu.sources
一個 .sources 檔案採用 Deb822 格式時如下所示:
Types: deb
URIs: http://archive.ubuntu.com/ubuntu/
Suites: noble-security
Components: main universe restricted multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
新增存放庫
要以 Deb822 格式新增存放庫,請建立一個 .sources 檔案,位置在 /etc/apt/sources.list.d/。例如,要新增自訂 PPA 存放庫:
sudo nano /etc/apt/sources.list.d/custom.sources
新增所需的自訂內容:
Types: deb
URIs: http://customizedurl/
Suites: noble
Components: main
Signed-By: /usr/share/keyrings/repository-name.gpg
儲存檔案並更新套件清單:
sudo apt update
刪除存放庫
要刪除存放庫,請刪除相應的 .sources 檔案,位置在 /etc/apt/sources.list.d/:
sudo rm /etc/apt/sources.list.d/custom.sources
sudo apt update
Deb822 格式的優點
- 結構化設定:清楚地區分存放庫類型、URI、套件和元件。
- 安全性提升:允許透過
Signed-By欄位指定用於存放庫簽章的 GPG 金鑰。 - 更好的相容性:在雲端環境和容器化環境中更容易管理多個存放庫。
詳情請參閱 sources.list(5) 手冊頁。
6. 管理軟體套件快取
APT 使用快取系統在本機儲存下載的套件檔案和中繼資料。此快取有助於加快軟體安裝和更新等操作的速度,但隨著時間的推移會不斷增長並佔用磁碟空間。了解如何管理快取對於維持系統效能和釋放資源至關重要。
檢查快取大小
要檢查快取佔用了多少空間:
sudo du -sh /var/cache/apt/
輸出範例:
126M /var/cache/apt/
清理快取
- 清除套件快取
使用apt clean命令刪除所有快取的軟體套件檔案:sudo apt clean這會清除/var/cache/apt/archives目錄,其中儲存下載的.deb檔案。 - 刪除部分下載
如果下載中斷或損壞,請使用以下命令刪除部分檔案:sudo apt autoclean這只會刪除過時的檔案和部分下載。
快取清理的範例輸出
sudo apt clean
sudo apt autoclean
輸出:
Cleaning up /var/cache/apt/archives...
Removing unused files...
Done.
重建快取
如果懷疑快取中繼資料已損壞,請透過更新套件清單來重建快取:
sudo apt update
這將使用來自存放庫的最新中繼資料重新整理本機快取。
7. 雲端場景:Azure、AWS 和 GCP 中的軟體管理
在雲端環境中,Ubuntu Server 上的軟體管理與地端設定類似。不過,還有一些其他注意事項:
Azure
- Azure 提供 自訂指令碼擴充功能 ,可以在虛擬機器部署期間自動安裝軟體。
- 範例:使用指令碼安裝 Nginx:
az vm extension set \
--resource-group myResourceGroup \
--vm-name myVM \
--name CustomScript \
--publisher Microsoft.Azure.Extensions \
--settings '{"commandToExecute":"sudo apt update && sudo apt install -y nginx"}'
AWS
- 使用 使用者資料指令碼 ,在執行個體啟動期間安裝軟體。
- 範例:在 EC2 執行個體上安裝 Docker:
#!/bin/bash
sudo apt update
sudo apt install -y docker.io
GCP
- 使用 啟動指令碼 ,管理虛擬機器執行個體上的軟體安裝。
- 範例:安裝 MySQL:
#!/bin/bash
sudo apt update
sudo apt install -y mysql-server
8. 安裝或解除安裝期間常見問題的疑難排解
1. 套件找不到
如果找不到某個套件,請確認存放庫已啟用:
sudo apt update
sudo apt update
2. 相依性錯誤
修正遺失的相依性:
sudo apt --fix-broken install
3. 存放庫問題
檢查存放庫錯誤:
sudo apt update
輸出範例:
Err:1 http://ppa.launchpad.net/repository-name/ubuntu noble Release
404 Not Found
解決方案:刪除或修正以下位置的存放庫項目: /etc/apt/sources.list。
4. 解除安裝後殘留檔案
清理殘留檔案:
sudo apt autoremove
sudo apt purge package-name
5. 權限遭拒
確認您擁有 root 權限:
sudo apt install package-name
9. 套件管理的最佳實務
- 安裝軟體前務必先更新
sudo apt update
- 定期升級系統
使用apt upgrade或apt full-upgrade以確保系統安全。 - 刪除不必要的套件
sudo apt autoremove
- 使用可信存放庫
除非必要,否則避免使用第三方存放庫。 - 監控雲端環境中的套件變化
使用指令碼或 Ansible 等設定管理工具自動執行更新。 - 定期清理快取
定期清理快取以釋放磁碟空間:
sudo apt clean
結論
無論您管理的是地端伺服器還是在雲端工作,掌握 Ubuntu Server 上的軟體安裝和管理對於維護一個安全高效的系統都至關重要。遵循本指南中概述的最佳實務,您可以確保伺服器保持最佳化狀態,並隨時準備應對任何工作負載。
如需了解更多資訊,請參閱 Ubuntu 官方文件中關於 APT。
接下來做什麼?
在下一篇文章中,我們將深入探討 Ubuntu Server 的修補程式更新,這是維護安全性和穩定性的關鍵任務。您將學到:
- 為什麼修補程式更新對安全性和穩定性至關重要 以及它如何防止弱點。
- 如何使用 apt 來有效地更新和升級您的伺服器。
- 之間的區別 apt update、 apt upgrade和 apt full-upgrade ,以避免常見錯誤。
- 自動更新 透過使用 unattended-upgrades 來節省時間並確保一致性。
- 如何處理 核心更新 並使用 reboot-required 通知優雅地重新啟動伺服器。
敬請期待關於如何讓 Ubuntu Server 保持安全和最新狀態的可行見解!
4 thoughts on “06. Installing and Managing Software on Ubuntu Server: A Complete Guide”