上個月,隨著 Linux Mint 20 的發(fā)布,Linux Mint 開始默認禁止安裝 snapd 工具。直接起因是,從 Ubuntu 19.10 開始,系統(tǒng)會直接從上游覆蓋 Chromium 的 APT 軟件包,然后自行下載 snapd 工具,隨即以 Snap 包的形式安裝 Chromium 瀏覽器。整個過程以 root 身份運行,自動安裝,并未獲取用戶授權。
在相當長的一段時間內(nèi),Linux Mint 是除 Ubuntu 之外擁有最多用戶的 Linux 發(fā)行版。基于 Ubuntu 和 Debian 的 Linux Mint 繼承了二者的眾多特性,它與 Ubuntu 的軟件庫也幾乎完全兼容,并采用 APT(Advanced Packaging Tools,高級打包工具)進行軟件包管理。直到 2014 年,Ubuntu 推出 Snap,開始用 Snap 和 APT 并行分發(fā)軟件。
不同于傳統(tǒng)的 Linux 軟件包管理方法(如 APT 和 RPM),Snap 包含了軟件運行需要的所有依賴關系,并將其全部捆綁在一個系統(tǒng)鏡像中,這在一定程度上簡化了軟件管理過程。不僅如此,統(tǒng)一化的 Snap 軟件包能夠在不同 Linux 發(fā)行版上運行,開發(fā)者無需再針對不同的發(fā)行版分別構建,軟件部署的難度有所降低,軟件開發(fā)和最終部署之間的延遲也得以縮減。
Canonical 最初將 Snap 作為一份跨平臺解決方案提供出來,但如今在 Linux Mint 等看來,它本身更成為一個問題。事實上這并非 Linux Mint 團隊首次公開發(fā)聲,他們在一年前就表露過對 Snap 的擔憂:“當它無緣無故替換掉軟件包時,當它開始損害我們與上游項目和軟件供應商的互動,并使我們別無選擇時,它就成為了一種威脅?!?/p>
當時,Linux Mint 團隊表示希望與 Ubuntu 及 Snap 項目組進行協(xié)商。但一年后的現(xiàn)在,Ubuntu 20.04 中的 Chromium 軟件包仍然是一個空殼子,一切依舊指向 Ubuntu 的 Snap 應用商店。因此,Linux Mint 團隊決定,從 Linux Mint 20 開始,APT 將不再允許以 Snap 形式進行安裝。該版本會保留 Chromium 的空包,告知用戶緣由,并指引合適的獲取方法。
Linux Mint 宣布不再支持 Snap 后,Canonical 終于給出公開回復。Ubuntu 工程服務負責人 Alan Pope 針對此次沖突的起源——Chromium 軟件包事件——作出了回應。
Pope 認為,Chromium 不是 Ubuntu 上的默認瀏覽器,用戶較少,受到的影響也不大。他提到 Chromium 每六周一個大版本,期間還有許多次要版本的高更新頻率,要為不同的 Ubuntu 版本及各類架構提供更新并非易事,而 Snap 能夠支持這樣高頻率的更新。用戶通過 Snap 也能夠并行安裝穩(wěn)定版、測試版或開發(fā)版等多個不同發(fā)行版。
不過,整個事件的爭議焦點不在于此,不止 Chromium 會遇到這種情況,Canonical 對 gnome-software deb 軟件包也施加了同樣的方法。Canonical 推行 Snap 不完全是為了幫助簡化軟件包管理過程,更是為了自己的用戶群增長做考慮。
確實,為 Linux 桌面構建應用存在困難。前 KDE 董事會成員 Frank Karlitschek 在 2019 年的 Linux 應用峰會上曾坦言 “Linux 應用程序只有四到五百個,macOS 和 Windows 上卻有數(shù)萬個”。Linus Torvalds 也在去年感慨 “The Linux desktop is in trouble”(Linux 桌面陷入了困境),因為 “我們沒有一個標準化的 Linux 桌面”,對于許多開發(fā)者來說,這是一大阻礙因素。
真正惹惱 Linux Mint 的,是 Canonical 對待 APT 軟件包的態(tài)度,和剝奪用戶權利的壟斷式行為。Linux Mint 團隊用 Spotify 做例證:當一個 Fedora 用戶想要安裝 Spotify 時,會被跳轉(zhuǎn)至 snapcraft 頁面。與此同時,Spotify 不再提供 RPM 軟件包、appimage、Flatpak 或其他格式,用戶別無選擇,只能從 Snap Store 下載。
常與 Snap 一同被提起的 Flatpak 也被 Linux Mint 團隊拿來作比較。相對而言,F(xiàn)latpak 更加自由,它允許任何人創(chuàng)建商店,它的客戶端也能夠與多個商店建立聯(lián)系,當雙方意見不合時,開發(fā)者可以選擇創(chuàng)建自己的 Flatpak 商店,而不一定要在 Flathub 發(fā)布應用。
相較而言,Snap 發(fā)布之初就只有一個客戶端,無法與多個服務器通信,這樣的模式讓 Linux Mint 團隊從一開始就感到擔憂。起初,他們以為,“只要 Snap 沒有成為 Linux 的發(fā)布標準,只要開發(fā)者持續(xù)分發(fā)軟件包,只要 Snap 不影響到已經(jīng)擁有的東西,就可以了”。如今事情的發(fā)展顯然不在預期。
在 Linux Mint 團隊看來,原先使用的 apt/dpkg 等軟件包管理器更成熟,也更為自由軟件著想,不商業(yè)化,涉及的東西沒有那么多,只要給用戶授權并提供發(fā)行版就好。而 Snap 包無法被修改、重構、打補丁或是鏡像。現(xiàn)在 Snap 甚至做得過頭了,借由 APT 軟件包來安裝自己受商業(yè)控制的軟件包管理系統(tǒng),這完全打破了 Snap "不會取代 APT" 的承諾。
一年前發(fā)布的博客文章中,Linux Mint 的負責人 Clement 曾指出 Snap 的好處:可以提供 Linux 之前無法訪問到的軟件。他表示 “希望有一天可以將 snap 集成到 Linux Mint 中,盡管市場可能會受到影響”。目前,尚不清楚雙方是否還會展開對話,以找尋合適的解決方案。
借 LWN.net 之言,“希望 Linux Mint 的這一舉措能夠促使事情朝著更開放的方向發(fā)展,以開放形式實現(xiàn)的 Snap 打包系統(tǒng)將會是整個 Linux 社區(qū)的勝利”。