Linux安装包不通用?解决方案来了!

Posted 电手

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux安装包不通用?解决方案来了!相关的知识,希望对你有一定的参考价值。


用过Linux的同学可能知道,Linux发行版,比如 Ubuntu 使用终端输入一行命令“apt install 软件名”就能快捷实现软件的安装。
但是在非 Debian 家族的 Linux 发行版中,比如 manjaro,就需要用 pacman 来安装软件。
为了解决不同发行版安装软件包的问题。就出现了通用的软件打包格式。
这一解决方案,对 Linux 上的软件开发人员来说,是非常便利的。
想要在多个 Linux 发行版上发布软件,就不需要针对每个发行版对软件进行平台化的打包。通过统一的打包方式,便可快速实现软件的分发。
本文小编就来介绍一下从普通用户角度,看看三种打包格式 Snap、Flatpak 和 AppImage 的主要区别。
Linux安装包不通用?解决方案来了!

01
用户的权限控件
Linux安装包不通用?解决方案来了!


Snap 为用户控制的权限提供图形和命令行界面。 在 Ubuntu 系统中,可以使用自带的「Ubuntu 商店」来管理 Snap 应用的权限。
Linux安装包不通用?解决方案来了!

Linux安装包不通用?解决方案来了!

若要查看使用命令行接口的快照应用的权限,请运行以下命令:

$ snap connections chromium
将「chromium」替换为相应的 snap 应用的名称。

Linux安装包不通用?解决方案来了!

若要查看所有已安装的快照应用的列表,请运行以下命令:

$ snap list

要授予相机权限给 Chromium 浏览器,可使用以下命令:

$ snap connect chromium:camera

要取消摄像机权限,运行下面的命令:

$ snap disconnect chromium:camera
权限管理的适当命令可以在「Slot」列中找到(上一张屏幕截图所示)。

相比 Snap 应用,Flatpak 还提供用于授予和撤销权限的接口。
可以使用 GNOME 软件应用(需要 GNOME 3.32.x)通过图像的方式操作。

若要查看 Flatpak 应用的权限,可运行以下命令:

$ flatpak info --show-permissions Chromium
Linux安装包不通用?解决方案来了!
将「Chromium」替换为 Flatpak 应用的名称。

若要查看系统上安装的所有Flatpak应用的列表,请运行以下命令:

$ flatpak list
若要更改 Flatpak 应用的权限,必须更改上面屏幕截图中显示的变量值。例如,下面的命令将使整个文件系统可用于皮瓣应用:
$ sudo flatpak override Chromium --filesystem=host


AppImage 目前不支持权限控件,但未来会支持的。


02
   沙盒环境   
Linux安装包不通用?解决方案来了!


Snap、Flatpak 和 AppImage 支持开箱即用沙盒应用环境。
沙盒是一个环境,或者也可以说是一种容器,它与主机系统完全隔离开来。
与主机系统的任何交互都是使用有限的 API 和权限控件完成的。
其中一些权限明确要求用户选择加入,或者我们用户可以完全禁用这些权限。
沙盒应用比对主机系统具有完全访问权限的其他应用都相对安全。

沙盒环境我想大家可能并不陌生,Windows 10 系统也内置了一个 Sandbox 环境,对于一些不放心的软件,可以先在沙盒环境中测试,这样就不会破坏主系统。

Linux安装包不通用?解决方案来了!


03
应用程序可移植性
Linux安装包不通用?解决方案来了!


AppImage 应用是单个可执行文件(类似于 Windows 的.exe文件),可以轻松地在系统之间共享。

通过包括应用本身以及应用所依赖的依赖库 Snap 和 Flatpak 应用具有可移植性。

但是,此过程不像 AppImage 那样简单,需要使用多个命令才能实现相同的结果。


05
   自动更新   
Linux安装包不通用?解决方案来了!


Snap 和 Flatpak 应用程序从集中式应用程序存储库中安装,应用程序无需用户干预即可自动更新。
AppImage 缺乏强大的自动更新机制, 用户必须手动下载新的 AppImage 二进制文件,并替换现有的二进制文件以安装更新。
不过目前AppImage 开发人员提供了一个工具,通过提供增量更新的方式来更新现有的二进制文件。

但是,它仍然需要下载更新工具,并手动将其与现有的 AppImage 二进制文件一起使用。


06
 应用程序大小 
Linux安装包不通用?解决方案来了!


AppImage 的应用由于使用压缩的关系,软件大小占用空间最低,Snap 和 Flatpak 应用大小因应用而异。


07
      总结      
Linux安装包不通用?解决方案来了!


与 Windows 相比,Linux 系统在软件安装上存在有一定的门槛,增加了学习成本,通用安装格式的出现,便可以一定程度上解决不同发行版 Linux 安装软件的问题。


Linux安装包不通用?解决方案来了!


以上是关于Linux安装包不通用?解决方案来了!的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse 中的通用代码片段或模板

Laravel 安装程序 v1.4.1 与 PHP 7.1 包不兼容?

Android 兼容包不包含 Activity.getFragmentManager()

安装SQLserver2012 所需的 MSI 包不存在

Yum下载rpm包不分析依赖关系强制安装

为啥作曲家包不安装