snap 已经在污染 apt

208 天前
 unclemcz

前几天是看到这个新闻: https://news.itsfoss.com/ubuntu-24-04-disappointment/

心里想不至于吧,Canonical 这么无良了么?

今天验证了下,握草,真的是这样。

apt 安装 chromium 的时候,会同时安装 chromium-browser 包和 snap 的 chromium,chromium-browser 是一个马甲,实际是使用 snap 的 chromium 。

我只能说,Canonical 我日你先人。

12235 次点击
所在节点    Ubuntu
88 条回复
Hantong
207 天前
所以实在受不了 Canonical 的骚操作就投入 Debian 的怀抱吧.jpg, 特别是生产环境给服务器用的, Debian 干净多了, 要高级支持不如 RedHat 系列.

虽然日用 Debian 就一毛坯房, 啥都得得自己装修, 最近从 Windows 切换过来还蛮不习惯的.
adoal
207 天前
Cannnical 历史上搞 upstart 搞 unity 最终都坚持不下去了……目测 snap 也火不起来。
Jirajine
207 天前
@cnt2ex #58 你要知道大部分的安全漏洞根本没有 CVE ,也不会被 backport 。一个普通用户能提权到 root 的内核,危险性跟一个需要 jit (违反 w^x )执行任意代码的浏览器根本不是一个量级的。同理 sshd 这些 network facing 的应用同样也是 security critical 。
不同于内核,浏览器的复杂度和攻击面摆在那里,你的 lts 厂商没有不能长期的为其维护 backport 和安全补丁,自然就不应该包含在 lts 的仓库中。
shijingshijing
207 天前
@dingwen07 你试过卸载 snap 就知道这玩意儿有多流氓了,堪比 360 和 windows update 。

删了之后,你 apt 装了个被重定向(劫持)为 snap 安装的软件之后,snap 他又回来了(像楼主提到的 chromium )
你升级下系统,snap 他又回来了。

最搞笑的很多人为了省系统资源、图稳定装的是 Ubuntu Server ,这个 snap 也会给你装上。需要 snap 的场景很多都是那种 apt 里面没有的桌面应用,比如 7zip ,我上 Ubuntu Server 都不要图形界面了,你还给我弄一个 snap ,我真的谢谢 Canonical 。
shijingshijing
207 天前
@Jirajine 其实我想说的是,滚动升级没毛病,安全漏洞肯定要修,但是还需要考虑一个问题,真的需要引入一个 snap 么?应用程序有漏洞,snap 就没有漏洞了吗?而且 snap 的权限可比应用程序高多了,snap 本身也很复杂,安装之后不仅有 snap 本身,还有 bare, core, snap-store 等等一堆东西,这些东西为了兼容应用程序还保留着不同的版本(我机器上就有 core18, core20, core22 ),此外还给你挂载一堆/dev/loop ,这些难道不是进一波扩大了攻击面么? Canonical 能保证这些都没有漏洞么?
按照最小必须原则,snap 就不该存在,好一点的做法还是 Google 给 chrome 自建 apt 源的做法;要沙盒也是 AppImage 这种。
cnt2ex
207 天前
@Jirajine #63
我不知道我需要说多少遍,安全更新不是功能更新,你偏要把二者混淆。
backports 和 security 也是两个东西。https://help.ubuntu.com/community/UbuntuBackports ,backports 的目的是给旧版的 ubuntu 提供新版的包,而不在与修复其中的安全漏洞。

我根本不知道你口中所谓的“大部分的安全漏洞根本没有 CVE”这句结论怎么来的。如果一个漏洞或者 bug 根本不重要,那么没有 CVE 也很正常。但如果是严重的漏洞,肯定会有 CVE 。而不重要的 bug fix 不会作为安全更新被推送也正常。

# 12:
> 因为浏览器是必须要一直升级的程序

# 40:
> 浏览器是 security critical 的,你不会想运行没有安全更新的浏览器访问一个网站直接被 RCE 。

我再重复一边,一个包我需要安全更新,不代表我需要一直保持到最新版本。一个包 5.1.0 的版本存在严重安全漏洞,我只需要 5.1.1 的版本,或者是 5.2.x 的版本修复这个漏洞,不代表我就一定要更新到 6.8.1 。
e3c78a97e0f8
207 天前
snap 软件启动速度忒慢了,以后不用 Ubuntu 了
busier
207 天前
用个毛线的 chromium-browser

直接用 firefox 官网下载的 .tar.gz 发行的版本不就完了,系统自带的 snap 版本视而不见~
satoru
207 天前
有一次需要打个 snap 包,测试过程中遇到个错误,在系统里找了对应的 Python 脚本读了下源码,那源码质量真是一言难尽,要是只看官网我还以为是多成熟的包管理系统 ……
yyzh
207 天前
@shijingshijing 对于 chrome 一直都是由 google 自建 apt/dnf 源维护,但是看楼主好像是想装 chromium
Jirajine
207 天前
@cnt2ex #66 backport 是指把上游更新的代码中部分(需要的功能、bug 修复、安全漏洞修复)移植到旧版而不破坏兼容性。给旧版系统提供新版的包,只是其中一种。
大部分漏洞并不是严重的安全漏洞,甚至没有被认作为安全漏洞就被当作一般的 bug 修了,这些漏洞是不会收到 cve 的。

不知道你要强调的是什么,上面说的很清楚了,浏览器作为足够复杂和足够大攻击面的应用,os 厂商既没有能力也没有意愿为你提供 long term 的安全更新。所以你要安全更新,就只能一直升级到新版,并且不应该被包含在 lts 的 repo 里。
@shijingshijing #65 你说的是两个不同的问题。浏览器不适合包含在 lts 源里,但 ubuntu 推荐你用什么方式去安装最新版的浏览器就是另一回事了。还是那句话,如果你发现你不喜欢 snap ,那你真的确实不适合用 ubuntu ,snap 是给特定的目标群体设计的,ubuntu 这个发行版也是只适合这个群体。snap 不是容器,它的设计有它的 trade off ,比如 snap 可以一键安装 k3s ,并非 linux 用户但工作中需要操作 linux 服务器的开发和运维人员非常喜欢这种功能。
brookegas
207 天前
因为安装 vps 要使用 certbot 自动更新证书,结果发现新版的 certbot 强制要 snapd

You'll need to install snapd and make sure you follow any instructions to enable classic snap support.
Follow these instructions on snapcraft's site to install snapd.

一开始没在意,就按它的要求安装了 snapd ,然后就看它花花地下载一堆各类依赖项
因为是个小机,对空间占用有点敏感,所以安装完以后 df -lh 一看,硬盘空间少了 2G

我只要定期更新下证书而已,可你到底干了些什么?!真是一坨大便啊!

赶紧卸载了
shijingshijing
207 天前
@Jirajine
>你说的是两个不同的问题。

你看到的是浏览器的漏洞问题和 snap 的漏洞问题,我认为这本质是一个问题,用户使用安全的问题。snap 的做法更像是为了解决一个问题,引入了一堆更糟糕的东西,似乎是解决了最初的问题,但对用户来说代价却很大:
1 ,snap 的包闭源,自己即使发现问题也无法手动去修;
2 ,snap 本身可能带来更多的问题;
3 ,即使前面的都 OK ,snap 本身占用大量不必要的资源,严重影响了用户正常使用;
4 ,即使真的发生严重的问题,我相信上游发布更新绝对会优先考虑 apt, rpm 这种影响力更大的源,snap 不仅时效性差,而且掌握在 Canonical 一家手里,什么时候更新得看 Canonical 的心情,所以真的出了问题,我觉得 snap 可能对用户损失更大。

>snap 是给特定的目标群体设计的,ubuntu 这个发行版也是只适合这个群体。

我倒觉得 snap 不是给什么群体设计的,是纯粹出于 Canonical 的商业目的设计的,snap 没有吸收开源社区里面一些优秀的案例,出发点本身就是 Canonical 的商业利益,所以没有所谓的适合这个群体,反倒是伤害了整个社区。
adoal
207 天前
@cnt2ex 他说的 backport 看来是作为一个通用词,不是说指 deb 系发行版里的`backports`这个 repo

不过“一个包 5.1.0 的版本存在严重安全漏洞,我只需要 5.1.1 的版本,或者是 5.2.x 的版本修复这个漏洞,不代表我就一定要更新到 6.8.1”这事不一定可行。虽然大部分基础设施类软件的上游一般都会在受支持的版本里仍然提供 critical fix ,但有一种情况,可能 distro 里打包的随着时间已经不受上游支持了,那就只能 distro 自己 backport 了;还有一种情况就是像 chromium 这样,上游一直在 rolling ,并不会维护特定的 LTS 版本,要安全补丁只能跟着更新,而且代码量又巨大,distro 做不来 backport 的。
huyanprc
207 天前
还是回归 debian 的好。
Paull
207 天前
fedora 就用了两套包管理系统,dnf 和 flatpak ,其中 flatpak 有自己维护的源,也可以切换至 flathub
Paull
207 天前
开源世界我们拥有的就是选择的自由,可以用社区维护的,也可以自己参与维护,snap 本身好不好用是一回事,但是它破坏了用户的选择权,所以换发行版😏,或者学习 mint 的做法
Jirajine
207 天前
@shijingshijing #73 snap 不是为了解决这个问题,浏览器不能被包含到主 repo 里,也可以通过其他 repo 安装,并且打包所有不兼容的依赖库,只是 ubuntu (作为一个 preconfigured 发行版)希望你使用 snap 的方式来安装而已。
snap 客户端是开源的,协议是开放的,也支持 sideload ,没有第三方源只是没人有兴趣部署。
snap 不是容器,你看到的这些缺点不是因为 canonical 技术垃圾,而是因为它的 trade off 不不同。
snap 当然是出于商业目的设计的,docker/podman/flatpak/flathub 这些也一样。
对于不了解也不关心系统是怎么运行的用户,ubuntu/snap 这一套代替他们喜欢的一键脚本和宝塔面板,提供的用户体验是独有的。当你不再是 ubuntu 的目标用户后而习惯使然接着使用 ubuntu ,自然会感觉哪哪都不好用。
mayli
207 天前
@Jirajine 我觉得这是 snap 这种类似于绿色软件的打包办法,比起 deb 的方案对于某些用户友好很多,就不容易装新软件出现一堆库冲突。
而且像复杂的软件,比如 lxd 和浏览器, 也能包进来,用户体验类似 apk 这种 allinone 的软件包,比起装个 chrome 还要一万个依赖,体验好一些。
cnt2ex
207 天前
@Jirajine #71
@adoal #74
我觉得我说的已经很直白了,因为 @Jirajine 通过强调浏览器有多么多么 security critical ,从而得出"浏览器需要不停升级"这个结论,所以我说他把安全更新和其他功能性更新混在一起。我也举了例子了,如果一个包 在 5.1.0 版本 存在严重的 security 漏洞,那么我只需要更新到任意一个没有这个严重漏洞的版本,从而停止继续升级,而不需要继续升级到 6.8.1 ,更不需要再未来出了 7.0 的版本继续升级。

看到了吗?我在 5.1.0 升级到 5.1.1 以后已经修复了严重的安全漏洞,我就已经停止更新了,这意味着不需要继续升级了。
我已经停了,可能你们还没看到我停在这里,我举下手✋,看到没,我停下来了。here here ,I am at 5.1.1 now.

总结上面的,说明 security critical 这一点,根本无法作为一个包"必须要一直升级的程序"的理由。这也是我举其他几个软件的原因(内核,各种服务器)。

现在知道我说的什么意思了吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1037576

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX