mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-01-13 22:30:37 +08:00
88 lines
5.6 KiB
Markdown
88 lines
5.6 KiB
Markdown
|
适用于所有发行版的 Linux 应用程序——是否真的有好处呢?
|
|||
|
============================================================================
|
|||
|
|
|||
|
![](http://www.iwillfolo.com/wordpress/wp-content/uploads/2016/06/Bundled-applications.jpg)
|
|||
|
|
|||
|
|
|||
|
让我们回顾一下 Linux 社区最初的愿景——促进应用程序的分发来解决发行版的碎片化。
|
|||
|
|
|||
|
继上周的文章:[Ubuntu’s Snap, Red Hat’s Flatpak And Is ‘One Fits All’ Linux Packages Useful?][1] 之后,一系列新观点浮出水面,他们可能包含关于这些应用程序有效性的重要信息。
|
|||
|
|
|||
|
### 缺点
|
|||
|
|
|||
|
就这个话题在[这里][2]的评论,一个叫 Till 的 [Gentoo][3] 使用者,对于上一次我们未能完全解释的问题给出了一些新的观点。
|
|||
|
|
|||
|
对于上一次我们选择仅仅称之为膨胀的的东西,Till 在这里进行了深入的剖析,这帮助我们更好的理解它的组成和其影响。
|
|||
|
|
|||
|
这些被称之为“捆绑应用”的应用程序能够工作在所有发行版的机制是——将它依赖的库都包含在它们的应用软件之中,Till 说:
|
|||
|
|
|||
|
|
|||
|
>“捆绑应用装载了大量的并不被应用开发者所维护的软件。如果其中的函数库X被发现了一个安全问题,你得为每一个独立的应用程序安装更新来确保你的系统安全。”
|
|||
|
|
|||
|
本质上,Till 提出了一个重要的安全问题。但是它并不仅仅与安全有关系,它还关系到许多方面,比如说系统维护,原子更新等等。
|
|||
|
|
|||
|
此外,如果我们进一步假设:依赖开发者们也许会合作,将他们的软件与使用它的应用程序一起发布(一个乌托邦的情况),这将导致整个平台的开发整体放缓。
|
|||
|
|
|||
|
另一个将会导致的问题是依赖关系变得模糊,就是说,如果你想知道一个应用程序捆绑了哪些依赖关系,你必须依靠开发者发布这些数据。
|
|||
|
|
|||
|
或者就像 Till 说的:“比如说像包XY是否包含了函数库Z的更新这样的问题将会是你每天需要面对的”
|
|||
|
|
|||
|
与之相反,对于 Linux 现行的标准的包管理方法(包括二进制包和源码包),你能够很容易的注意到哪些函数库已经在系统中更新了。
|
|||
|
并且,你也可以很轻松的知道哪些应用使用了这个函数库,这就将你从繁琐的单独检查每一个应用程序的工作中解救了出来。
|
|||
|
|
|||
|
其他可能由膨胀导致的缺点包括:更大的包体积(每一个应用程序捆绑了依赖),更高的内存占用(没有分享函数库),并且,少了一个包过滤机制来防止恶意软件:发行版的包维护者也充当了一个在开发者和用户之间的过滤者,他保障了用户获得高质量的软件。而捆绑应用中就不再是这种情况了。
|
|||
|
|
|||
|
最后一点,Till 声称,尽管在某些情况下很有用,但是在大多数情况下,捆绑应用程序将消弱自由软件在发行版中的地位(专有的供应商将被允许发布他们的软件而不在公共储存库中分享它)。
|
|||
|
|
|||
|
除此之外,它引出了许多其他问题。很多问题仅仅只与开发人员有关。
|
|||
|
|
|||
|
### 优点
|
|||
|
|
|||
|
相比之下,另一个名叫 Sven 的人的评论试图反驳目前普遍反对使用捆绑应用程序的观点,从而证明和支持使用它。
|
|||
|
|
|||
|
“浪费空间?”——斯文声称在当今世界我们有很多其他事情在浪费磁盘空间,比如电影存储在硬盘上、本地安装等等……
|
|||
|
|
|||
|
最终,这些事情浪费的空间要远远多于仅仅 100 MB 而你每天都要使用的程序。因此浪费空间的说法实在很荒谬。
|
|||
|
|
|||
|
“浪费运行内存?”——主要的观点有:
|
|||
|
|
|||
|
- 共享库浪费的内存要远远少于程序运行时产生的数据
|
|||
|
|
|||
|
- 而今运行内存已经很便宜了
|
|||
|
|
|||
|
“安全梦魇”——不是每个应用程序的运行真正上要注重安全。
|
|||
|
|
|||
|
而且,许多应用程序甚至从来没有看到任何安全更新,除非在“滚动更新的发行版”。
|
|||
|
|
|||
|
除了 Sven 这种从实用出发的观点以外,Till 其实也指出了捆绑应用在一些情况下也有着其优点:
|
|||
|
|
|||
|
- 专有的供应商想要保持他们的代码游离于公共存储库之外将更加容易。
|
|||
|
- 不被你的发行版打包的小生态的应用程序将变得更加可行。
|
|||
|
- 在没有Beta包的二进制发行版中测试应用将变得简单。
|
|||
|
- 将用户从复杂的依赖关系中解放出来。
|
|||
|
|
|||
|
### 最后的思考
|
|||
|
|
|||
|
虽然关于此问题有着不同的想法,但是有一个被大家共同接受的观点是:捆绑应用对于填补 Linux 生态系统有着其独到的作用。
|
|||
|
|
|||
|
虽然如此,它的定位,不论是主流的还是边缘的,都变得愈发清晰,至少理论上是这样。
|
|||
|
|
|||
|
想要尽可能优化其系统的用户,在大多数情况下应该要避免使用捆绑应用。
|
|||
|
|
|||
|
而讲究易用性、尽可能在维护系统上少费劲的用户,可能应该会感觉这种新应用十分舒爽。
|
|||
|
|
|||
|
--------------------------------------------------------------------------------
|
|||
|
|
|||
|
via: http://www.iwillfolo.com/linux-applications-that-works-on-all-distributions-are-they-any-good/
|
|||
|
|
|||
|
作者:[Editorials][a]
|
|||
|
译者:[Chao-zhi](https://github.com/Chao-zhi)
|
|||
|
校对:[校对者ID](https://github.com/校对者ID)
|
|||
|
|
|||
|
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
|
|||
|
|
|||
|
[a]: http://www.iwillfolo.com/category/editorials/
|
|||
|
[1]: http://www.iwillfolo.com/ubuntus-snap-red-hats-flatpack-and-is-one-fits-all-linux-packages-useful/
|
|||
|
[2]: http://www.proli.net/2016/06/25/gnulinux-bundled-application-ramblings/
|
|||
|
[3]: http://www.iwillfolo.com/5-reasons-use-gentoo-linux/
|