好像这个东西就是把依赖像容器一样打包到一块而不依赖系统。但 OS X 这么多年来一直都用.app 打包 GUI 程序,好像也没啥大问题。为什么 Snap 会引起这么大争议呢?
1
seakingii 2022-04-13 00:37:16 +08:00 1
不清楚有什么区别
Snap 好处是巨大的,不依赖别的.但可能是为了实现这一点(不依赖),有很大的问题 这两天用过它安装了一些软件 docker ,结果安装的 docker,能写的文件有路径限制,比如只能写 $HOME 目录下的文件... 安装的 VSCode 也有一些问题 然后就是软件包比较大,也不能用国内镜像加速 |
2
66450146 2022-04-13 02:41:16 +08:00
因为不依赖系统意味着不和系统里的其他软件共享依赖,那就意味着同一个依赖项可能会重复,太不 Unix 哲学了
另外就是它用的隔离方式,有的软件从来不考虑,容易出错 其实有这么一个选项非常好,尤其是如果你只用它来弄桌面环境的软件,依赖问题迎刃而解。Unix 那套哲学对前端不太好用…… |
3
IvanLi127 2022-04-13 08:39:33 +08:00 via Android
用 linux 的用户咋能随随便便地就接受系统里有一堆一样的东西。
|
4
wizardyhnr 2022-04-13 09:09:15 +08:00
Linux distro 太多了,开发者用 snap 可以省很多打包的力气,代价就是用户装一个小软件可能要安装几个 G 的 snap 包。比如 cerbot ,明明 pip 可以搞定的事,非要推荐你用 snap 安装。依赖复杂软件这么搞可以理解,但是小型软件也这么弄就有点滥用了。
|
5
lonewolfakela 2022-04-13 11:51:21 +08:00
最大的争议就是这玩意儿不能弄镜像,国内下载贼慢……
|
6
jKpzPv20NjX56i44 2022-04-13 11:53:32 +08:00 via iPad 1
snap 引起争议的根本在于 snap store 闭源,是一个专有于 Canonical 的项目。
与 snap 竞争的是 flatpak 。是红帽开发的,所有部件都开源,非常受欢迎(不知道为什么国内没有很多人知道),仅仅是开源属性就甩了 snap 几条街。 也许,我是说也许,如果没有 flatpak 这玩意,snap 不会有这么大争议。毕竟这样包装极大方便了开发者。 |
7
julyclyde 2022-04-13 14:26:02 +08:00
不能接受 snap 为什么就能接受 docker 呢?
docker 也是一个专属于企业的项目啊 |
8
seakingii 2022-04-13 15:10:22 +08:00
|
10
dingwen07 2022-04-13 16:40:07 +08:00 via Android
Linux 里类似的东西叫 AppImage
|
11
KouYiGuo 2022-04-13 17:17:56 +08:00
macOS 的 Bundle 不会把所有的依赖包都打进去,常规的 UIKit 等 Framework 都是内置于系统的。
|
12
ysc3839 2022-04-13 18:28:19 +08:00 1
简单看了下,Snap 和 macOS bundle 差别挺大的。前者还包含包管理功能以及沙盒环境,更加类似 Windows 的 AppX 或 Android 的 apk (不完全一样,后面这两者不是直接挂载镜像,AppX 也可以打包不受沙盒限制的 Win32 应用)。而 macOS bundle 就只是把传统的“主程序+依赖库+资源”的目录结构改了下,然后在界面上假装最顶层的文件夹是一个 app 而已。
至于有的人不喜欢 Snap ,可能是因为 Snap 太重、管得太多。我个人是支持桌面操作系统加入沙盒环境的,但是一些专业用户 (尤其是那些只用开源软件的用户) 可能会觉得:“我用的软件都仔细检查过代码了,不存在恶意行为,为什么还要加个影响性能的沙盒?”就我个人感觉,专业用户往往喜欢自己掌控更多细节,因此不喜欢管太多的工具。 @KouYiGuo UIKit 属于系统 API ,自然不会打包。 |
13
KouYiGuo 2022-04-13 18:45:37 +08:00
自从用了一次 Ubuntu ,体验了一把那下载速度(强制 Chromium 从 SnapStore 下载)。啧啧,Linux 桌面版里首先排除掉 Ubuntu 。
|
14
freefcw 2022-04-13 23:14:08 +08:00
snap 的下载速度确实是有点不太理想……
|