LWN:发行版使用Flatpak

利用Flatpak在Linux上高效部署CloudCompare:从安装到实战 本文详细介绍了如何利用Flatpak在Linux系统上高效部署CloudCompare,从环境搭建到实战应用。通过Flatpak的沙箱技术,解决了传统安装中的依赖冲突问题,并提供了安装优化、多版本共存、硬件加速等高级技巧,帮助用户快速上手这款强大的3D点云处理工具。 阅读详情

关注了就能看到更多这么棒的文章哦~

Distributors entering Flatpakland

By Jonathan Corbet
July 8, 2022
DeepL assisted translation
https://lwn.net/Articles/900210/

在过去的 30 年里,Linux 发行版已经发生了相当大的变化,但它们打包软件的方式却基本没变。虽然.deb 和 RPM 格式(以及其他格式)随着时间的推移有一些变化,但它们目前的形式在它们的创造者看来还是能认得出的。不过,发行商们正在推动变革。Fedora 和 openSUSE 项目都在努力减少使用古老的 RPM 格式,并在他们的大部分软件发行中改用 Flatpak;但事实证明,有些用户很难接受进行这个改变。

传统的二进制软件包里包含人们感兴趣的程序,以及它依赖的其他那些额外补充文件。该软件包还带有 metadata 元数据,描述了该程序要求还额外安装哪些软件包才能正常运行。发行版的软件包管理器使用这些依赖信息来确保每个软件包都被正确安装。

Flatpak 格式被描述为 "另一种发行格式而已",在某种程度上,这确实是事实。一个 Flatpak 包(或者,简单地说,"flatpak")拥有.deb 或 RPM 包之内所包含的一切内容,但也有一些明显的区别。也许最重要的一点是如何处理依赖关系。传统的软件包里会有一个(可能很长的)列表,来逐一列出所需要的每一个其他软件包;相反,Flatpak 软件包会列出一个单独的 "runtime (运行时)",其中包含软件包构建所依据的那些基本 library 的集合。如果有一些库或其他依赖项没有出现在所选择的 runtime 中,就会直接捆绑(bundle)在应用程序的 flatpak 中。

这种安排对进行打包工作的开发者有一定的吸引力。"runtime 加 bundling "的方法简化了依赖关系的管理,这种能把系统或运行时的库文件的修改过的版本打包进来的能力被称为 Flatpak 的一个特点。针对某个特定 runtime 的软件包可以安装在任何安装了该 runtime 的系统上,这使得建立一个可以安装在多个发行版上的单一软件包就变得可行了。因此,发行商可以使用这种格式来让他们的生活更容易;专有软件包的传播者也从这个想法中看到了一些明显的吸引力。

从某种意义上说,Flatpak 已经着手解决许多与多年前命运多舛的 Linux Standard Base 的工作想解决的同样的问题。

Flatpak 设计的时候就希望能跟拥有不可改变的 core 部分的发行版能配合工作;它不会安装到/etc 或/usr/bin 等系统目录。这使得它对那些试图创建这种类型产品的发行商非常方便。

Flatpak 的另一个关键卖点是其内置的沙盒机制。用 Flatpak 安装的应用程序默认会在一个几乎不能访问底层系统或互联网的容器内运行。通过在用于构建软件包的 manifest 文件中进行声明,可以让一个特定的应用程序来申请访问权限,例如,访问用户的本地文件、互联网或 window-system server。至少在理论上,这种沙盒使安装软件包更加安全,并限制了那些被攻破的或者本身就是恶意的软件包可能造成的损害。

Flatpak 也不是没有批评者。虽然软件包可以共享同一个 runtime,但没有任何机制可以阻止 runtime 和 version 变得越来越多;这似乎已经在某种程度上变成了现实问题。运行时和软件包本身都很大,大大增加了存储空间和内存的消耗量。无论是否真有需要,应用程序经常会请求访问本地文件和互联网,以至于有些人认为 Flatpak 的沙盒声明机制是炒作多于现实。

所有这些加起来,对使用 Flatpak 形成了一些反对意见。此外,对 Flatpak 的许多反对意见似乎也可能来自于对改变事情原本做法的本能的抗拒。

Fedora's (un)filtered Flathub

在 Fedora 社区,Fedora 37 的一个修改建议已经引发激烈讨论,该建议中删除了目前应用于 Fedora 的 GNOME 软件程序中的 Flathub package repository 的那些 filter。一旦删除了 filter,Flathub 上所有可用的软件包,包括那些包含专利软件或由于专利问题等原因不能与 Fedora 一起发行的程序,都将可以被直接安装了。但 Flathub 本身作为整体来说仍将被禁用,除非用户启用了第三方软件库。

这一变动的好处是,更多的软件可以供 Fedora 用户使用,并通过沙盒化使这些软件更加安全。后者是 GNOME Software 工具在两者都可用的情况下会优先选择 flatpaks 而不是传统的 RPM 包的部分原因。但是在 Fedora 社区中,也有一些有发言权的成员强烈反对这个想法。例如,Vitaly Zaitsev 抱怨人们对 flatpaks 的偏好,说这将导致 flatpaks 在系统更新时取代 RPM 包。上面提到的很多观点,例如安装占用空间和有漏洞的沙箱,都在这次讨论中有所体现,就像对 RPM Fusion repository 的偏见一样(之前在 6 月份 LWN 已经深入讨论过)。

这些反对意见似乎不太可能阻止 Flathub 取消 filter,也不可能阻止总体上转向 Flatpak 的过渡。该发行版似乎在致力于这个方向,而 Silverblue 变体(围绕一个不可改变的 core installation 而构建),已经需要 Flatpak 了。在讨论中,Michael Catanzaro 赞扬了这种格式的安全优势,并指出,尽管抱怨了多年,Flatpak 的反对者还没有提出一个可行的替代方案来提供类似的安全优势。Richard Hughes 不太赞同 "在几乎所有情况下,用户都应该使用 Flatpaks" 的观点。除非有什么变化,否则 Fedora 的 Flatpak 的未来看起来都是确定并且会全速前进的。

OpenSUSE's ALPs are flat

早在 4 月,SUSE 宣布了一项被称为 "Adaptable Linux Platform"(ALP)的工作,在某种程度上,它是为了定义 SUSE Linux Enterprise(SLE)发行版的未来。有很多关于这个工作的文字描述,但外部观察者还是认为 ALP 到目前为止仍然相当模糊。关于 ALP 将是什么、或者它将如何影响 SUSE 的企业产品或 openSUSE,目前还没有太多公开信息。不过,已经出现的一些迹象表明,该发行版建立在一个小型的、不可改变的 core 部分之上,应用程序单独管理,很可能使用类似 Flatpak 的格式。

7 月 5 日,Dan Čermák 发布了 ALP 工作组的会议记录,该会议的重点是 "ALP Desktop 将是什么样子,以及当涉及到 ALP Desktop 时,我们如何能消除对 Flatpak 和 container 的恐惧"。会议记录指出,Flatpak 确实会被用作分发格式,但强调不需要从 Flathub 等外部来源安装 flatpaks;"打包模式不会改变,只是格式会改变"。

当被问及推动转向 flatpak 的动力以及好处是什么时,Čermák 提到了沙盒机制,但他说主要的优势在于减少了打包工作。像 Firefox 或 LibreOffice 这样的桌面应用程序可以在滚动发行的 openSUSE Tumbleweed 发行版上只要进行一次构建就能为 Tumbleweed、Leap、ALP 以及可能是 SUSE 可能创建的其他任何产品来发布了。这就不难理解为什么分销商会被一个可以大大减少维护当前复杂的应用程序 package 的工作量的方案吸引了。

在 openSUSE 社区,也有一些对使用 Flatpak 的坚决反对的意见。例如,Robert Kaiser 说:"如果在发行版中用 Flatpak 那样奇怪的打包方式来替代基于 RPM 的方式,那可能是时候回到 Windows 了"。不过,作为整体来说,openSUSE 社区似乎没有对这个方向过于抗拒,至少到目前为止是这样。这可能有几个原因,包括 openSUSE 社区相对缺乏使用 Flatpak 的经验,以及 ALP 总体上的尚未定型的原因。但Čermák 的这一保证也会有所帮助:

Tumbleweed 会是需要开发工作的,但没有计划从根本上改变 Tumbleweed。你仍然可以像以前一样使用 Tumbleweed。此外,你将能够使用 "containerized 的方式",但至少在可预见的未来,你并不是必须这样做的。

可能很快就会有这样一个时刻:在 Fedora 上开始不可避免要使用 Flatpak,至少在安装某些复杂的应用程序时需要这样。到目前为止,openSUSE 似乎并没有朝这个方向发展,所以 Tumbleweed 用户(占 openSUSE 社区的很大一部分)不必担心被不情愿地推入 Flatpak 世界。

我们不应该低估这最后一点的价值。围绕 systemd 转型出现的许多痛苦感受,肯定是由于感觉到它被强加给了那些对自己现有设置感到很满意、认为没有必要改变的用户。即使 Flatpak 像某些人所说的那样好,但如果过渡期处理得不好,也有可能造成类似的不愉快。

这种改变似乎很可能会到来;在后来的一篇文章中,Čermák 对打包一些复杂的应用程序的价值提出了质疑,并建议,如果它们被包括在发行版里的话,可能只能以 flatpak 的形式提供。Robert Schweikert 说得更简明:"我们今天所拥有的东西在大约 30 年的时间里运行得相当好,但这种模式肯定已经有些显示出老态了"。进行开发来满足当前的需求正是发行版提供商所需要做的,而这种发展肯定会带来最终用户可见的变化。关键是在处理这些变化时要同情这些用户,希望能避免我们在过去的改动中看到的一些动荡。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

format,png

超过4.2万个AOI(地理围栏),深圳市2025年2月15日更新的全类别AOI,矢量图层(全国22个超大特大城市AOI更新系列) 阅读详情

相关推荐

从零到一:龙芯杯参赛全攻略(含北理工学长经验PDF、B站培训视频与开源代码合集)

本文详细介绍了龙芯杯全国大学生计算机系统能力大赛的参赛全攻略,包括资源整合、技能树构建、团队协作和避坑指南。提供北理工学长经验PDF、B站培训视频与开源代码合集,帮助参赛者从零基础到站上领奖台。重点解析如何高效获取优质资源、避开新手常见陷阱及构建可落地的学习路径,助力普通学生系统学习CPU设计。

weixin_26802933的博客 538

Flatpak概念及其基础使用方法

Flatpak的软件包源是一个OSTree Repo,Flatpak包按照软件包类型、ID、架构与版本存储在对应的OSTree分支中;有些情况下,软件包所在的软件包源(Repo)系统中并没有添加(比如第三方源,或者本地源),此时若软件包提供者提供了flatpakref文件,软件包可以在不添加源的情况下安装;flatpak的软件包运行在相对独立的环境中(类似于容器),因此只能通过命令进入正在运行中的软件包的环境;关键字可以是ID内出现的字符串(与ID相关),也可能是软件包描述内出现的字符串(与描述有关);

weixin_44911246的博客 2620

ROS小车定位实战:如何用rf2o_laser_odometry和robot_localization实现精准里程计(附避坑指南)

本文详细介绍了如何利用rf2o_laser_odometry和robot_localization在ROS中实现高精度小车定位。通过激光里程计与状态估计的黄金组合,解决室内移动机器人的定位难题,包括环境搭建、算法配置、多传感器融合策略及实战避坑指南,帮助开发者快速部署稳定可靠的定位系统。

weixin_29081703的博客 287

flatpak_如何建造Flatpak

flatpak 很久以前,Linux发行版附带了一个操作系统以及所有可用的软件。 没有“第三方”软件的概念,因为所有内容都是发行版的一部分。 应用程序的安装不是很多,因为它们是从大型软件仓库中启用的,因此可以在许多软盘或后来购买或下载的CD中获得它们。 随着互联网的普及,这种情况变得更加便捷,如今“应用程序商店”的概念应运而生。 当然,Linux发行版倾向于将其称为软件存储库或简称为repo...

cuml0912的博客 1187

abaqus 根据坐标施加载荷- Analytical Field 载荷映射

在一些类型的分析中,需要将按位置分布的载荷施加到结构上,比如流体分析导出了结构的气动载荷、或者温度载荷,需要将压强分布、温度分布载荷施加到固体上。这种分析可以使用abaqus中的Analytical Field实现。 1 例子 1.1 结构 一个100*100mm的面,面的载荷分布函数为p=(x2+y2)0.5/((20.5)*100) MPa,即(0, 0)的压强为0,(100, 100)的压强为1。 1.2 载荷 载荷函数:p=(x^2+y^2)^0.5/((2^0.5)*100) in exce.

shengyutou的博客 2万+

告别纸上谈兵:在Xilinx Artix-7 FPGA上实测RGMII接口,从ILA抓包到PC Ping通全流程记录

本文详细记录了在Xilinx Artix-7 FPGA平台上实现RGMII接口的全过程,包括硬件配置、Vivado工程设置、双沿数据转换代码实现以及ILA波形分析。通过实测数据包捕获和PC端Ping测试,验证了千兆以太网通信的稳定性和可靠性,为工业通信网关等应用提供了实用参考。

weixin_33701251的博客 287

linux snappy 版本,三款新星Linux解决方案:Snappy、Flatpak和AppImage

【51CTO.com快译】2018年,与发行版无关的软件包安装解决方案大有帮助。这个领域的三颗新星是Snappy、Flatpak和AppImage。不久前,二进制软件包被认为是救星,不必为Linux系统编译软件包。2018年,借助与发行版无关的软件包解决方案,我们会阔步前进。本文将介绍这个领域的三颗新星:Snappy、Flatpak和AppImage。AppImage是一种很管用的软件磁盘映像我是...

weixin_34684094的博客 627

【Android】汽车电源管理:深入解析CarPowerManager与Suspend To RAM的交互机制

本文深入解析了Android Automotive OS中CarPowerManager与Suspend To RAM(深度睡眠)的交互机制。详细阐述了从车辆发出睡眠请求,到CarPowerManagementService协调应用状态,最终通过内核进入低功耗睡眠的完整流程,并探讨了唤醒机制、开发者实践及功耗优化策略,为车机应用开发与系统优化提供关键指导。

weixin_28339967的博客 289

Snap、AppImage 和Flatpak:谁才是 Linux 的最佳应用打包方案?

在Linux世界中,软件打包和分发方式一直是开发者与用户关注的焦点。传统的打包方式(如DEB、RPM)虽然成熟,但面临着依赖管理复杂、跨发行版兼容性差等问题。如果你使用 Linux 系统,可能已经注意到近年来出现了几种新的应用打包格式:Snap、AppImage 和 Flatpak。它们都试图解决 Linux 生态中长期存在的一个问题——“依赖地狱”。本文将深入探讨这三种技术的起源、设计哲学、技术实现以及适用场景,帮助你全面了解现代Linux应用打包技术。一、Linux打包简史与问题根源。

宝子速来!这儿是我程序员的“快乐星球”博客。没有晦涩代码轰炸,满是斗bug糗事、技术趣闻。算法如神奇魔法,bug似调皮精灵,我用诙谐语言拆解编程,让你在欢笑中解锁代码新姿势,速来围观! 2247

2024年电气工程师最新面试题及答案

1. **基本电气工程原理**:包括电流、电压、电阻、功率等基本概念。2. **欧姆定律**:V = IR,描述电压、电流和电阻之间的关系。42. **风力发电系统组成**:包括风力涡轮机、发电机、控制系统等。44. **智能电网技术**:包括自动化控制、通信技术、数据分析等。10. **减少EMI**:使用屏蔽、滤波、合理布线等方法。40. **光伏系统组成**:包括光伏板、逆变器、控制器等。48. **能量存储技术**:包括电池、超级电容器、飞轮等。

guo162308的博客 6561

【VibeCoding系列】小白入门指南:模型选择、编辑器选择、项目预定全分析

开箱即用:下载安装就能用,不用配 API Key(也可以自己配)Cmd+K 快速修改:选中代码,按 Cmd+K,直接让 AI 修改Cmd+L 对话:侧边栏聊天,支持引用文件和代码@文件引用:输入 @ 就能引用项目中的文件,AI 自动读取上下文Agent 模式:告诉 AI 一个需求,它自动跨文件修改下载地址cursor.com(免费版有额度限制,足够入门)✅下载 Cursorcursor.com),安装打开✅选一个小项目(个人名片页 or Todo List)✅按照七步工作流开干。

十年老程序猿,AI 疯狂研究专家,前沿硬核知识分享 210

LWN:OpenSUSE MicroOS Desktop - 基于Flatpak 的不可更改发行版!

关注了就能看到更多这么棒的文章哦~OpenSUSE MicroOS Desktop: a Flatpak-based immutable distributionMarch 29, 2023This article was contributed by Koen VervloesemDeepL assisted translationhttps://lwn.net/Articles/927373/...

Linux News搬运工 1880

【全覆盖算法】栅格地图实现布氏单元分解算法+栅格地图实现牛耕Boustrophedon Cellular Decomposition Path Planning

本文先对做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。

qq_35635374的博客 282

LWN:Ubuntu 不再缺省提供Flatpak!

关注了就能看到更多这么棒的文章哦~Ubuntu stops shipping Flatpak by defaultMarch 28, 2023This article was contributed by Bradley MoodleyDeepL assisted translationhttps://lwn.net/Articles/927262/Canonical 最近宣布,它将不再把 Fla...

Linux News搬运工 1293

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

LWN: Fedora, FFmpeg, Firefox, Flatpak, Fusion!

关注了就能看到更多这么棒的文章哦~Fedora, FFmpeg, Firefox, Flatpak, and FusionBy Jonathan CorbetJune 16, 2022DeepL assisted translationhttps://lwn.net/Articles/897793/Fedora 的目标是成为桌面 Linux 发行版的首选,但是这个目标长期...

Linux News搬运工 517

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

LWN:FUSE 改用 folio 页集时出现的困扰!

关注了就能看到更多这么棒的文章哦~FUSE folio conversion confusionBy Daroc AldenFebruary 18, 2025Gemini-1.5-flash translationhttps://lwn.net/Articles/1008714/内核开发者们一直在努力将各种内部接口转换为使用folios(页集);虽然这个过程一直在进行,但由此引入的回归(regr...

Linux News搬运工 959

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

LWN:推动更多硬件产品选用KDE!

关注了就能看到更多这么棒的文章哦~Getting KDE onto commercial hardwareOctober 5, 2020This article was contribu...

Linux News搬运工 298

LWN:Linux Mint拒绝支持Ubuntu的Snap安装包!

关注了就能看到更多这么棒的文章哦~Linux Mint drops Ubuntu Snap packagesByJohn CoggeshallJuly 8, 2020原文来自:http...

Linux News搬运工 993

LWN:PipeWire,新一代的Linux audio/video bus

关注了就能看到更多这么棒的文章哦~PipeWire: The Linux audio/video busMarch 2, 2021This article was contributed ...

Linux News搬运工 6581

LWN:可信树Merkle tere在build系统中的应用!

关注了就能看到更多这么棒的文章哦~Merkle trees and build systemsMay 28, 2020 This article was contributed by D...

Linux News搬运工 623

Flatpak应用打包:从传统deb/rpm到现代沙盒化的终极技术演进指南

🚀 想要在Linux系统上获得更安全、更稳定的应用体验吗?Flatpak应用打包技术正在彻底改变Linux软件的发行方式!本文将带你深入了解从传统deb/rpm包到现代沙盒化应用的技术演进历程。 ## 为什么Flatpak是Linux应用打包的未来? 传统的Linux软件打包方式如deb和rpm存在诸多痛点:**依赖冲突**、**版本锁定**、**系统污染**等问题长期困扰着用户和开发者。F

gitblog_00569的博客 783

跨发行版应用打包格式 Flatpak 发布

据 Flatpak 开发团队称,几个重要的开源项目已经为其支持的操作系统以 .flatpak 格式发布了他们的应用,这些开源项目包括 LibreOffice、InkScape、GIMP、MyPaint 和 Darktable。有些人可能记得 Flatpak 之前的名字叫做 XDG-App,Flatpak 是应 GNU/Linux 和开源软件开发者所需而出现的,可以让他们在多个桌面平台、操作系统上发行软件时,不用花费几个小时乃至几天来为各个主要 Linux 发行版进行打包工作。

weixin_56035688的博客 611

Flatpak打包(10)——可用运行时(Runtime)

Freedesktop GNOME KDE 全部文章目录: Flatpak打包(1)——Flatpak 介绍 Flatpak打包(2)——Flatpak应用元素 Flatpak打包(3)——应用Flatpak Flatpak打包(4)——构建第一个Flatpak Flatpak打包(5)——开始配置 Flatpak打包(6)——构建一个简单的应用 Flatpak打包(7)...

beyond_zhangna的博客 1724

flatpak做包体验步骤记录

flatpak做包体验步骤记录

ken2232的博客 203

Flatpak:构建安全沙盒应用的利器

Flatpak:构建安全沙盒应用的利器 Flatpak 是一个用于构建、分发和运行沙盒化桌面应用的系统。该项目主要使用 C 语言开发,同时辅以 Shell、M4 等其他编程语言。以下是对该项目的详细介绍。 项目基础介绍 Flatpak(原名为 xdg-app)是一个由 GNOME 项目开发的工具,旨在为开发者提供一个构建沙盒化应用的统一解决方案。通过 Flatpak,开发者可以轻松地将应用打包成独...

gitblog_01033的博客 444

linux中pak命令,在Linux系统中安装Flatpak教程

选择你的Linux发行版快速安装Flatpak及使用Flatpak。支持Ubuntu、Fedora、Red Hat Enterprise Linux、Deepin、Endless OS、Linux Mint、openSUSE、Arch、Debian、CentOS、Gentoo、Solus、Alpine、Mageia、Pop!_OS、elementary OS、Raspbian。以下一一为你介绍在这...

weixin_31163527的博客 1863
上一篇: LWN:符号链接带来的麻烦!
下一篇: LWN:在Linux上用Waydroid运行安卓应用!
LinuxNews搬运工
博客等级 码龄7年 438粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值