
整理 | 蘇宓 出品 | CSDN(ID:CSDNnews)

隨著時間推移,32 位軟體及系統早已日漸式微。拿國內而言,像小米、OPPO、Vivo 這些主流應用商店,早在三年前就發話了:所有移動安卓應用,最遲 2022 年 8 月前必須全面上 64 位。
如今這股淘汰風也刮到了 Linux 世界,連一向更新節奏還算“穩健”的 Fedora 都坐不住了。近日,Fedora 開發人員帶來一項最新的提案:想要在未來的 Fedora 44 版本中,全面移除對 i686 架構的支援。簡單來說,就是 Fedora 正式跟 32 位說再見,連帶著那些為 64 位系統準備的 32 位相容包(multi-lib)也一起下線。

聽起來像是清理歷史遺留問題,但這項提議一齣,立刻在社群掀起波瀾,尤其在遊戲圈引發不少擔憂。
要知道,目前還有不少老遊戲、Steam 應用都還依賴這些 32 位元件。對此,甚至有一款基於 Fedora 打造、專為遊戲玩家設計的 Linux 發行版 Bazzite 創始人直言:如果 Fedora 最終真的砍掉 i686 支援,自家的專案可能會被迫停擺,這對他們來說無異於一次“滅頂之災”。

Fedora 的變革:告別 32 位支援
事實上,Fedora 多年來一直在逐步減少對 32 位的支援。
早在 Fedora 31 中,該發行版就已經停止分發 i686 架構的核心軟體包和安裝映象,也不再發布對應的軟體倉庫。不過,當時為了在 64 位系統上執行 32 位應用(即透過 multilib 機制),i686 軟體包的構建工作仍被保留了下來。
後來自 Fedora 37 起,情況又發生了變化:維護者獲得了更大的自由度,只要某個 i686 包不再被其他元件依賴(即“葉子包”),就可以選擇不再為其構建 32 位版本。這讓大家能把精力集中在真正面向用戶交付的軟體架構上。
現在,Fedora 團隊終於準備邁出最後一步,徹底終結對 i686 架構的支援。這一變更提案將分兩階段實施:
-
第一階段:不再在 x86_64 倉庫中提供 i686 構建的軟體包,意味著 multilib 支援將被移除,即不再支援在 64 位系統上執行 32 位程式。
-
第二階段:完全停止為 i686 架構構建軟體包。
Fedora 維護者表示,這個過程被刻意拆分為兩步。第一階段相對溫和,若後續發現問題,仍有回退的可能;但第二階段幾乎不可逆——若要回退,不僅需要重啟部分架構支援,還可能牽涉大規模的構建系統調整。
其指出,這項變動對某些軟體包影響較大,需要做出相應適配。例如 Wine,將需啟用“新 WoW64”模式,以便在純 64 位環境中繼續執行 32 位的 Windows 應用。
按照計劃,專案維護者透露,第一階段將盡早在開發週期內實施,最遲也要趕在系統的大規模重建(mass rebuild)之前完成。這一安排旨在提供至少四周的緩衝期,提前暴露並解決潛在問題——確保在進入第二階段(即 Beta 凍結前)時,不會留下隱患。
一旦變更完成,Fedora 還將提供配套機制,在系統升級過程中自動清除舊有的 i686 軟體包,避免殘留不再維護的元件,從而降低升級出錯的風險。

減輕各方負擔的一個決定
取消對 i686 架構的支援,Fedora 維護者直言,這樣可以有效減輕軟體包維護者、釋出工程團隊、基礎設施和終端使用者的負擔。
提案中寫道:
-
軟體包維護者:構建和維護 i686(以及更廣義上的 32 位架構)軟體包的工作量正不斷增加——而 i686 也是 Fedora 最後一個仍提供部分支援的 32 位架構。許多上游專案已經明確停止支援 32 位架構的構建或執行,這迫使 Fedora 要麼在下游自行恢復對該架構的支援,要麼對大量軟體包進行打包策略的修改,以適應這些支援的缺失。而透過徹底放棄對 i686 的支援,Fedora 可以擺脫這部分額外且日益沉重的維護負擔。
-
釋出工程:當前將 32 位庫納入 x86_64 倉庫的流程依賴於一套脆弱的啟發式規則。隨著這項變更的實施,這套規則也可以一併移除,從而簡化 x86_64 倉庫的構建流程。
-
基礎設施:不再為 i686 構建軟體包,將釋放 x86 架構構建伺服器的部分資源,這些資源可轉用於加速 x86_64 包的構建。
-
終端使用者:從 x86_64 倉庫中移除大約 1 萬個 32 位軟體包後,倉庫元資料體積將顯著減小,有助於加快元資料下載速度,並提升所有涉及依賴解析的 dnf 操作效能。
目前,這項變更提案已經發布到 Fedora 開發郵件列表,進入公開討論階段。這也意味著這件事情暫時並未板上釘釘,仍需由 Fedora 工程與指導委員會(FESCo)投票決定。

仍有不少駐足 32 位的應用
雖然技術的迭代是大勢所趨,但這並不意味著變革不會帶來影響。隨著這一提案在社群流傳開後,不少使用者尤其是遊戲圈的人對其潛在影響表示擔憂。
反對聲音中,最受關注的來自 Bazzite 發行版的創始人 Kyle Gospodnetich。
Bazzite 是一個基於 Fedora 打造、專為 Linux 遊戲最佳化的作業系統,特別適配 Steam Deck 和其他手持裝置。它內建 NVIDIA 專有驅動、支援執行 Android 應用,並提供了類似 SteamOS 的使用者介面。
Kyle 對 Fedora 的這一提議表達了嚴重擔憂。他指出,即使有人手動重建必要的軟體包,Steam 的某些基礎功能依然可能無法正常執行。此外,他還強調,這一變化已經在宣傳層面對 Fedora 造成了負面影響:
儘管我非常希望這個變更最終能夠落地,但現在還為時過早。如果現在就執行,等於直接扼殺了像 Bazzite 這樣的專案 —— 正值 Fedora 在遊戲領域剛剛取得重大進展的時候。Neal Gompa 已經指出,即使有人手動構建了 Steam 所需的軟體包,很多基礎用例依然會失效。
此外,這次提案在宣傳層面也給 Fedora 帶來了不可挽回的傷害。我一整天都在被各種新聞和使用者反饋刷屏,很多人都在擔心他們的 Fedora 或 Bazzite 系統會因此無法再執行 Steam。
我認為,不僅這項變更應該被否決,甚至連提案本身也應該撤回,以減少其對 Fedora 專案所帶來的負面影響。
也許可以另起一個提案,專門探討是否要減少 32 位架構的構建範圍?這樣會是更穩妥的推進方式。

在進一步的討論中,Kyle 甚至表示,如果變革按照計劃進行,那麼最好的選擇就是解散 Bazzite 專案。

與此同時,也有不少網友將矛頭指向 Steam 後面的開發商 Valve。一位網友在 Reddit 上發表評論稱:“32 位問題(至少部分)要怪 Valve。”

他寫道,當前 Fedora 的移除提議之所以引發爭議,是因為大家擔心這會讓遊戲“失效”——這確實是合理的擔憂,畢竟 Steam 會受到影響。
他解釋道:
“其實這個問題大部分早就解決了,而剩下沒解決的部分,說白了,是 Valve 的鍋。
移除 32 位包/庫,不等於完全放棄對 32 位程式碼的支援(比如蘋果那樣徹底切斷)。如果 Fedora 真按這個提案執行,32 位程式仍然可以執行——只要它們自帶需要的庫就行。
聽起來好像很麻煩?其實不然,現在大家本來就都這麼做了。Steam 自帶 Linux Runtime,裡面包含了運行遊戲所需的全部庫。喜歡 Flatpak 的使用者也可以用 Flatpak 來執行。所以,那些還存在的原生 Linux 遊戲,其實完全不受影響。
那 Wine / Proton 呢?也不會受影響!Wine 的新 WoW64 模式允許在純 64 位系統中執行 32 位 Windows 程式,不再依賴系統層面的 32 位庫。
那麼這個提案到底會打破什麼?
答案是:Steam 客戶端本身。出於某種原因,Steam 在 Linux 上仍然是 32 位的。它是目前移除 32 位支援的最大攔路虎 —— 否則維護者早就能省下無數志願者的時間與精力。
那為什麼 Steam 還沒遷移到 64 位?Valve 是不是還活在 2007 年?沒人知道!更奇怪的是,他們其實曾經移植過,所以這事根本不是技術難題。
當然,32 位支援的取消並不僅僅會影響 Steam,但 Steam 的問題之所以特別,是因為它完全不受其他人控制。別的軟體可以修、可以打包、可以重寫 —— 可是隻有 Valve 才能把 Steam 遷移到 64 位。
於是我們陷入了一個尷尬的死迴圈:維護者有充分理由想要放棄 32 位支援,以節省寶貴的資源和時間;但這麼做就會導致 Steam 崩掉,於是任何相關提案都只能擱淺。而這個局面,除了 Valve,誰都無能為力。
這真的挺糟糕的。”
也有網友指出:“問題不僅在 Steam,還有 Mesa 等關鍵依賴”。
32 位遊戲仍然需要 32 點陣圖形驅動程式(例如 Mesa 軟體包),而 Steam 出於充分理由不願捆綁其自建的驅動程式。
因此,即使 Steam 客戶端切換到 64 位構建,你在 Fedora 中仍然至少需要 32 位 Mesa 及其依賴項。
我認為爭論的重點不應該是完全放棄 32 位庫還是不放棄,而更應該關注哪些 32 位庫可以放棄,哪些不可以。
隨著爭議的發酵,Fedora 維護者、FESCo 成員 Neal Gompa 出面安撫了眾人,並分享了自己的觀點:
“如果我們假設 Steam 客戶端短期內不會遷移到 x86 的 64 位版本,也沒有人去開發 Linux 下的 32 位庫轉 64 位的相容機制(32on64 thunking),那我們就得認真思考,到底需要支援 i686 到什麼程度、支援多久。 畢竟 Fedora 的每個版本只維護大約 13 個月,其實我們完全可以把 i686 的淘汰時間延後很久。 如果我沒算錯的話,最晚可以撐到 Fedora 65(預計在 2036 年 10 月釋出),因為它的生命週期將在 2037 年 11 月才結束。”

時下,這場爭議或許暫時會落幕,但圍繞新舊架構、相容性與前進節奏的博弈,只會在未來一次次重演。
參考:
https://news.itsfoss.com/fedora-could-kill-bazzite/
https://discussion.fedoraproject.org/t/f44-change-proposal-drop-i686-support-system-wide/156324/92?ref=news.itsfoss.com
https://www.reddit.com/r/linux_gaming/comments/1lkl78s/the_32bit_issue_is_at_least_partially_valves_fault/
想要學習Linux系統的讀者可以點選"閱讀原文"按鈕來了解書籍《Linux就該這麼學》,同時也非常適合專業的運維人員閱讀,成為輔助您工作的高價值工具書!