思考:app 打包运行,跨发行版 pk 跨平台 (***)

跨发行版运行:不同的 Linux发行版

appimagetool / snap / flatpak 等打包工具,podman cli 容器管理前端 distrobox :只能在 linux OS 中运行,但可以跨不同的 Linux发行版中运行。

隔离与非隔离,不同的隔离强度:

不同的应用场景,有不同的需求。在 desktop 桌面场景,隔离会使得 app 在使用时会产生许多的困扰;而在大多数的服务器应用场景,隔离又是必须的。

podman-desktop 隔离强度大,造成与宿主机交互信息时,还需要一些麻烦的设置;也许 podman-desktop未来会不断改善吧?毕竟:变,是永远的不变。
distrobox 的隔离强度小,使得在使用时,会简单方便许多。

比如:目前(2024/05)版本对比,在运行带 gui app时,distrobox 比 podman-desktop 要简单、方便得多。
同时,distrobox 只有不到 20 MB,podman-desktop 本身,以及依赖的运行时,好像全部要将近 1GB 磁盘空间了?可惜 distrobox只能在 Linux 上运行,且在 debian 12 或上版本的官方仓库里,才有 distrobox这个软件包。

不同的隔离强度,各有优缺点吧,这要看具体的应用场景来选择了。

缺点:
  • 不同的版本号,可能会存在配置文件等等的迁移问题。
  • 跨不同的 Linux 发行版运行,一般也只是跨主流 Linux 发行版而已,不可能是跨所有的 Linux 发行版。
    没有哪一个软件个人作者,或者组织,有能力、精力、金钱可以做到让 app 应用,可以跨越所有的 Linux 发行版都可以运行的。这也是没有必要的吧?

跨平台运行:不同的操作系统平台

docker / podman 等容器,podman-desktop gui 容器图形管理前端,虚拟机:可以同时实现跨不同的 Linux发行版,以及跨不同的操作系统平台(linux,win,macOS)运行。

所谓跨平台,也只是跨主要的、或主流的操作系统平台而已。比如、跨 安卓、unix OS 操作系统平台运行的 app,不多吧?

能够跨越的原因

在 app 应用层与操作系统层之间,插入了 appimagetool / snap / flatpak,docker / podman,虚拟机等等的“中间层”,是这些不同的中间层的作用,使得 app应用可以获得跨发行版 与 跨平台 运行的能力。

一些麻烦的事情,由谁来做呢?

这些中间层软件的维护,也是一件麻烦的事情,只不过一般是由专门的软件开发者、组织、社区来维护。这使得 app 应用的开发者们,免除了 app 在跨发行版、跨平台运行上的麻烦。

如何才能做到正确选择,有时也是很考验人性、以及智慧能力的:

这类中间层软件,也是由程序员开发出来的。凡是人创造的东西,就意味着不可能是绝对完美的;总是会存在着各种各样的 bug,以及新陈代谢的软件生命过程。

正确认识事物的方法:哲学智慧思维,总是不所不在

在人类的世界里,不存在包治百病的药,也不存在无所不能的工具。

残缺也是一种美,因为在人世间,根本就不存在有绝对的完美。人们只能不断地去追求相对的最美。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值