如何在不破壞依賴關係的情況下將 Debian 12 遷移到 Testing 版本

範例場景: Morgan 有一個用於個人開發的 Debian 12 桌面系統,他需要為某個專案安裝更新的函式庫。如有必要,Morgan 可以重新安裝系統,但他更希望避免系統升級不徹底或修復方案會移除重要軟體套件的情況。這只是一個假設範例,並非實際遷移或測試結果。最穩健的做法是分階段進行遷移,模擬 APT 的方案,並在發現任何不理解的變更時立即停止。

截至 2026 年 10 月 9 日,Debian 將目前的測試發行版標識為 Forky,它是 Debian 13 “Trixie” 之後的下一個版本。 Debian 警告稱,測試版的安全更新無法由安全團隊及時維護。測試版在備用桌面或開發機器上可能有用,但對於需要可預測的安全性覆蓋或持續可用性的系統而言,它並不適用。任何遷移過程都無法保證所有依賴項和應用程式保持不變。

1. Debian Testing 是否是這台電腦的正確安裝目標?

測試版包含已通過從不穩定版自動遷移標準的軟體包,其中包括旨在保持依賴項可安裝性的檢查。但這並不意味著每個軟體包都完美無缺,或者每個桌面配置都能正常運作。 Debian 專案在其測試版發行版概述中解釋了軟體包如何進入測試版。 Debian 的安全性常見問題指出,由於遷移等待或過渡,修復程序可能會延遲。

對於工作關鍵型桌上型電腦、生產伺服器或沒有復原路徑的機器,請繼續使用穩定版。對於 Morgan 假設的開發桌面電腦,如果計劃中包含偶爾的軟體包更新、臨時卸載以及手動維護,則測試版或許可行。如果目標只是安裝一個新應用程序,請在遷移整個作業系統之前,先查看 Debian Backports 或其他受支援的軟體包管理方案。

Debian 終端機顯示 /etc/os-release 文件,其中標識 Debian GNU/Linux 12,代號為 Bookworm。
請先確認起始系統為 Debian 12 Bookworm,然後再依照對應的發行說明進行操作。

2. 更換儲存庫之前必須備份哪些內容?

建立可恢復的備份,而不僅僅是軟體包清單的副本。保留個人文件、應用程式資料、加密復原金鑰、重要設定以及任何本地建置的軟體包。對於虛擬機,請建立快照並確認如何復原。對於實體桌面,請保留安裝媒體和已測試的啟動方法,並確保備份儲存在單獨的媒體上。

記錄目前軟體包和來源狀態,以便稍後進行比較:

dpkg --get-selections > ~/package-selections.txt
apt-mark showmanual > ~/manually-installed-packages.txt
sudo cp -a /etc/apt ~/apt-config-before-testing

這些記錄有助於解釋發生了哪些變化,但它們本身並不能重現整個系統。摩根應該在有足夠時間審查 APT 提示並進行恢復時安排遷移,而不是在截止日期前才開始。

檔案管理器顯示一個名為 debian12-backup 的資料夾,其中包含系統、主目錄和設定檔。
範例備份資料夾旨在提醒您檢查您自己的單獨備份是否為最新且可恢復。

3. 軟體包管理和 Bookworm 安裝是否乾淨?

在引入新發行版之前,請先解決現有問題。完成 Debian 12 的常規更新,如果核心或核心服務發生更改,請重新啟動系統,並驗證桌面是否正常運作。然後檢查軟體包狀態、保留項和軟體倉庫來源:

sudo dpkg --audit
sudo apt-get check
apt-mark showhold
apt-cache policy bash libc6 systemd

dpkg --audit報告部分安裝或不一致的軟體包狀態;apt-get check檢查目前系統中的依賴關係問題。審查已保留的軟體包,而不是盲目取消保留。在過渡期間移除或停用第三方軟體倉庫,並記錄從供應商軟體倉庫、本機檔案或原始碼建置安裝的軟體套件。這些軟體包在 Debian Testing 中可能沒有相容的版本。

如果系統已經存在損壞的軟體包、未解決的配置或混用套件,請勿在其上疊加發行版變更。請先修復目前狀態,或在單獨的分割區或磁碟上執行全新安裝。預期結果是建立一個能夠識別軟體包問題的基線系統,而不是預先聲明的完全空白的審計輸出。

Debian 終端機會在不同的提示字元下列出 dpkg audit、apt-mark showhold 和 apt-cache policy 指令。
在開始發布過渡之前,檢查軟體包配置是否中斷、軟體包是否被保留以及儲存庫來源是否異常。

4. 在測試之前,是否應該從 Bookworm 過渡到 Trixie?

是的,請使用文件中記錄的從 Bookworm 到 Trixie 的升級步驟作為中間階段。 Debian 的發行說明是針對從一個穩定版本升級到下一個穩定版本而編寫的,其中列出了準備工作、已知問題和升級後的任務。 Debian 12 的Bookworm 發行說明描述了升級到下一個版本的過程。請按照這些說明操作,重新啟動系統,並在切換到測試版之前確認機器運行的是最新的穩定版本。

這種分階段升級的方式提供了一個已知的檢查點,使故障更容易隔離。不要直接在主桌面上將 Bookworm 來源變更為 Testing,從而跳過版本說明。雖然 APT 可能可以解決直接升級的問題,但這並非官方記錄的穩定版到穩定版的升級路徑,並且可能將多輪軟體包變更合併為一個更難審查的更改。如果穩定版升級本身失敗或遺留未解決的軟體包問題,請暫停升級。

瀏覽器顯示 Debian 12 Bookworm 發行說明,位於標題為「從 Debian 12 升級」的部分。
請使用官方的 Bookworm 升級說明完成向 Debian 13 Stable 的支援遷移,然後再將 APT 的目標版本改為 Testing。

5. 如何在不混淆測試套件的情況下,引導 APT 進行測試?

Trixie 系統清理並備份完成後,請檢查 `/etc/trixie/`/etc/apt/sources.list和 `/etc/ trixie/` 目錄下的所有檔案/etc/apt/sources.list.d/。暫時停用第三方軟體倉庫。一致地取代 Debian 穩定版套件條目;除非您完全了解 APT 版本鎖定機制,否則不要混用trixie`/ etc/trixie/` trixie-security、` testing/etc/trixie/`、`/etc/trixie/` 和其他不相關的套件。

Deb822 原始檔每個來源使用一個節。以下是一個針對 Debian 主歸檔文件的簡化範例:

Types: deb
URIs: https://deb.debian.org/debian
Suites: testing
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

請保留與您的安裝相符的組件和簽名設定;並非每個系統都啟用所有組件。如果您希望目前的測試發行版在未來的版本變更中自動更新,請使用套件名稱testing。截至上述日期,該套件名稱為 Forky。使用代號會將forky您綁定到該版本名稱;在 Forky 發布後,它不會自動跟隨下一個測試代號。

不要想當然地認為某個testing-security版本就等於穩定版的安全倉庫。 Debian 目前的 Forky 頁面顯示,測試版的安全性更新尚未由安全團隊管理,因此可能無法及時推播。請在繼續操作前查看目前的測試版發布資訊。

文字編輯器顯示了 deb822 Debian 原始碼節,其中 Suites 欄位設定為 testing,並指定了 Debian 歸檔金鑰環。
請務必重新定位 Debian 歸檔節,並保留安裝所使用的金鑰環和元件。

6. APT 提議要改變什麼?

刷新軟體包索引,檢查候選版本,然後模擬發行版升級:

sudo apt update
apt-cache policy
apt-get -s full-upgrade

此-s選項模擬事務,但不會安裝建議的軟體包。請仔細查看完整計劃,尤其要注意軟體包的移除、新安裝的庫、暫緩安裝的軟體包以及沒有候選軟體包的情況。 APTfull-upgrade允許安裝或移除軟體包以滿足依賴關係,因此「命令已完成」並不等同於「我所有需要的應用程式都已安裝」。

對於複雜的方案,請使用解析器診斷功能重複模擬:

apt-get -s -o Debug::pkgProblemResolver=yes full-upgrade

如果您計劃移除桌面環境、顯示管理器、網路元件、引導程式或其他您依賴的軟體包,且您無法解釋原因,請勿繼續。庫的遷移可能會導致某些應用程式在測試環境中暫時無法使用。等待遷移完成或暫時將系統保持在穩定版可能比強制合併軟體包更安全。切勿--force為了使類比環境看起來乾淨而使用或大量移除軟體包。

在模擬場景中,Debian 終端機顯示 apt-get -s full-upgrade 指令,後面跟著軟體包清單標題。
在授權任何軟體包更改之前,請閱讀模擬交易及其移除清單;螢幕上的內容並非真實的 APT 運行。

7. 何時應該進行真正的升級?

只有在模擬方案可接受、備份可用且電腦電源和網路連接穩定後才能繼續操作。關閉所有應用程序,使用本地端而非不穩定的遠端會話,並在不啟用自動確認的情況下啟動升級:

sudo apt full-upgrade

接受之前,請再次閱讀軟體包和移除摘要。如果 APT 提議移除關鍵的桌面或核心軟體包,請拒絕並進行調查。如果升級因依賴項錯誤而停止,請保留完整的錯誤輸出。不要立即運行apt --fix-broken install或重複操作-y;首先確定是哪個軟體包或存儲庫約束導致求解器停止。

交易成功後,請遵循軟體包的任何提示,重啟計算機,並檢查圖形會話、網路、聲音、儲存和基本應用程式是否正常運作。如果正在進行大規模遷移或某些軟體包暫時從測試版中消失,通常最好等待歸檔遷移完成,而不是混用不穩定軟體包。 Debian管理員手冊中的 APT 章節解釋了普通升級和 APT 之間的區別full-upgrade,包括 APT 刪除軟體包的功能。

Debian 終端機顯示 sudo apt full-upgrade 和初始依賴關係計算訊息。
只有在模擬結果可以接受之後才能開始升級,然後在接受之前查看實際的交易摘要。

8. 如何驗證遷移並保持其可恢復性?

重新啟動後,確認目前版本並檢查軟體包一致性:

cat /etc/os-release
sudo apt-get check
sudo dpkg --audit
apt-cache policy bash libc6 systemd

如果需要了解變更內容,請查看 APT 歷史記錄/var/log/apt/history.log和軟體包日誌/var/log/dpkg.log。測試 Morgan 所依賴的應用程序,包括促成此次遷移的任何專案。驗證來源檔案現在是否指向預期的軟體包套件,以及已停用的第三方條目是否已悄悄恢復。

請保留備份,直到桌上型系統完成正常工作任務並至少更新過一次軟體包。 APT 不支援從測試版降級到穩定版。如果系統無法使用,恢復完整系統映像或重新安裝穩定版並恢復資料通常比手動回滾每個軟體包版本更可靠。

為了持續使用,請定期更新,閱讀擬議的軟體包移除公告,並密切注意 Debian 的測試和安全公告。如果 Morgan 的優先順序從開發新軟體包轉向可預測的安全維護,那麼下一步正確的做法是全新安裝或恢復穩定版系統,而不是隨意修改軟體包並想當然地認為降級就能解決問題。

截取的 Debian 終端機視圖顯示了 apt check 和 dpkg audit 指令,後面跟著空白提示。
請核對您機器上的版本標識符和軟體包狀態;空白範例輸出並不能證明昇級成功。

官方參考資料

留下評論

使用 Systemd 定時器可靠地執行 ownCloud 後台作業

將按需作業運行替換為 systemd 定時器,該定時器每 15 分鐘執行一次 ownCloud 支援的 occ system:cron 命令。

透過尋找故障路由來恢復 ownCloud WebDAV 同步

透過 Apache、Nginx 或反向代理程式追蹤 WebDAV 請求,然後使用經過驗證的 PROPFIND 測試確認 ownCloud 同步功能正常。

設定 Nextcloud 的公共 URL,以便它可以存取自身。

透過設定其規範 URL 並從伺服器本身檢查 DNS、HTTPS 和反向代理路由,修復 Nextcloud 缺少出站位址警告的問題。

在 Ubuntu 24.04 上設定 Nextcloud Redis 快取

在 Ubuntu 24.04 上設定 Nextcloud Redis 快取

透過本機 Unix 套接字配置 APCu 和 Redis,以實現 Nextcloud 快取和檔案鎖定,並提供目前和舊版 Nextcloud 的步驟。

使用 Systemd 定時器自動執行 Nextcloud Cron

檢查 Nextcloud 的 cron 模式,修復其 systemd 服務和計時器,並驗證後台作業在啟動後以及每隔五分鐘運行一次。

使用 Redis 清除 Nextcloud 的檔案鎖定警告

啟用可靠的 Nextcloud 檔案鎖定,選擇適當的 Redis 或 Valkey 後端,並驗證警告是否清除,同時避免並發檔案變更的風險。

如何才能獲得 Nextcloud A+ 安全評級

如何才能獲得 Nextcloud A+ 安全評級

使用最新更新、HTTPS 和 HSTS、精確的反向代理信任以及針對公共伺服器的檢查,修復 Nextcloud 掃描中常見的錯誤。

啟用 Nextcloud 伺服器端加密,並評估其影響

為需要加密的儲存配置 Nextcloud SSE,保護加密金鑰,並在加密現有文件之前測量傳輸和 CPU 影響。

將 Elasticsearch 全文搜尋功能新增至 Nextcloud

將 Nextcloud 的檔案搜尋連接到 Elasticsearch,索引文件內容,並選擇適合您的伺服器和安全需求的設定。

為 Nextcloud 已刪除檔案設定可靠的過期策略

為 Nextcloud 已刪除檔案設定可靠的過期策略

配置 Nextcloud 在規定的保留期後刪除已刪除的文件,可靠地安排後台作業,並避免執行清除所有使用者回收站的命令。