V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pocarisweat
V2EX  ›  Ubuntu

Ubuntu 的 Snap 和 macOS 的 Bundle 有什么区别?

  •  
  •   pocarisweat · 2022-04-13 00:07:34 +08:00 · 3665 次点击
    这是一个创建于 962 天前的主题,其中的信息可能已经有所发展或是发生改变。

    好像这个东西就是把依赖像容器一样打包到一块而不依赖系统。但 OS X 这么多年来一直都用.app 打包 GUI 程序,好像也没啥大问题。为什么 Snap 会引起这么大争议呢?

    14 条回复    2022-04-13 23:14:08 +08:00
    seakingii
        1
    seakingii  
       2022-04-13 00:37:16 +08:00   ❤️ 1
    不清楚有什么区别

    Snap 好处是巨大的,不依赖别的.但可能是为了实现这一点(不依赖),有很大的问题

    这两天用过它安装了一些软件 docker ,结果安装的 docker,能写的文件有路径限制,比如只能写 $HOME 目录下的文件...
    安装的 VSCode 也有一些问题

    然后就是软件包比较大,也不能用国内镜像加速
    66450146
        2
    66450146  
       2022-04-13 02:41:16 +08:00
    因为不依赖系统意味着不和系统里的其他软件共享依赖,那就意味着同一个依赖项可能会重复,太不 Unix 哲学了

    另外就是它用的隔离方式,有的软件从来不考虑,容易出错

    其实有这么一个选项非常好,尤其是如果你只用它来弄桌面环境的软件,依赖问题迎刃而解。Unix 那套哲学对前端不太好用……
    IvanLi127
        3
    IvanLi127  
       2022-04-13 08:39:33 +08:00 via Android
    用 linux 的用户咋能随随便便地就接受系统里有一堆一样的东西。
    wizardyhnr
        4
    wizardyhnr  
       2022-04-13 09:09:15 +08:00
    Linux distro 太多了,开发者用 snap 可以省很多打包的力气,代价就是用户装一个小软件可能要安装几个 G 的 snap 包。比如 cerbot ,明明 pip 可以搞定的事,非要推荐你用 snap 安装。依赖复杂软件这么搞可以理解,但是小型软件也这么弄就有点滥用了。
    lonewolfakela
        5
    lonewolfakela  
       2022-04-13 11:51:21 +08:00
    最大的争议就是这玩意儿不能弄镜像,国内下载贼慢……
    jKpzPv20NjX56i44
        6
    jKpzPv20NjX56i44  
       2022-04-13 11:53:32 +08:00 via iPad   ❤️ 1
    snap 引起争议的根本在于 snap store 闭源,是一个专有于 Canonical 的项目。

    与 snap 竞争的是 flatpak 。是红帽开发的,所有部件都开源,非常受欢迎(不知道为什么国内没有很多人知道),仅仅是开源属性就甩了 snap 几条街。

    也许,我是说也许,如果没有 flatpak 这玩意,snap 不会有这么大争议。毕竟这样包装极大方便了开发者。
    julyclyde
        7
    julyclyde  
       2022-04-13 14:26:02 +08:00
    不能接受 snap 为什么就能接受 docker 呢?
    docker 也是一个专属于企业的项目啊
    seakingii
        8
    seakingii  
       2022-04-13 15:10:22 +08:00
    @julyclyde 没有 SNAP,用别的凑合能过日子

    没有 DOCKER 这样的容器,好多事情就难办了,重要性不是一个级别的.
    julyclyde
        9
    julyclyde  
       2022-04-13 16:07:15 +08:00
    @seakingii 如果 snap 比 docker 先出来先推广呢,也许就是另一种景象了
    dingwen07
        10
    dingwen07  
       2022-04-13 16:40:07 +08:00 via Android
    Linux 里类似的东西叫 AppImage
    KouYiGuo
        11
    KouYiGuo  
       2022-04-13 17:17:56 +08:00
    macOS 的 Bundle 不会把所有的依赖包都打进去,常规的 UIKit 等 Framework 都是内置于系统的。
    ysc3839
        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 ,自然不会打包。
    KouYiGuo
        13
    KouYiGuo  
       2022-04-13 18:45:37 +08:00
    自从用了一次 Ubuntu ,体验了一把那下载速度(强制 Chromium 从 SnapStore 下载)。啧啧,Linux 桌面版里首先排除掉 Ubuntu 。
    freefcw
        14
    freefcw  
       2022-04-13 23:14:08 +08:00
    snap 的下载速度确实是有点不太理想……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2596 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:16 · PVG 19:16 · LAX 03:16 · JFK 06:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.