AppStream: Linux 软件统一安装框架

27 Jan
2011
# 作者: riku / / 本文采用CC BY-NC-SA 2.5协议授权,转载请注明本文链接

要说各大 Linux 发行版之间最大的区别是什么?我想最明显的一点就是很多发行版都有自已一套独立的包管理系统,比如 Debian 系的有 Deb 包及 apt 系统、 Redhat 系的有 rpm 及 yum 系统、Archlinux 有 Pacman 、Gentoo 有 emerge ,这种分散的软件打包方式对于桌面用户及开发者而言带来了相当大的不便。不过值得期待的是,这种困境在也许在未来将会得到改变。

事情是这样的,最近一群来自于 RedHat, Fedora, Debian, Ubuntu, openSUSE, Mandriva 和 Mageia  等各大发行版及 Linux 厂商的开发者们,聚集在位于德国纽伦堡的 Suse 办公室,举行了一次名为 " App Installer  Meeting " 的技术会议 (  53 分钟长的会议视频 / Wiki 文档 )。这次会议的主要目的就是商讨如何实现一个通用型的 Linux 软件统一安装框架,项目名称可以暂定为  AppStream  ( 项目主页 )。( 或者也可以称之为 app store, market place, software center 等等,总之因为是初始阶段,还没有定论)

不同于之前 Ryan Gordon 提出的 FatELF 格式 ( 它需要把 kernel 模块、依赖包、库及软件文件等打包成巨大的文件,因此这个项目后来难产了),AppStream的灵感来源于 Bretzn Project 项目,它的实现机制简单来说就是当开发者发布代码后,它会为不同的发行版及架构打包软件,并通过一个统一的平台进行分发。

- 技术方面 :

AppStream 的框架实现基本上都是利用了现成的开源工具,比如后端采用 PackageKit [1] 包管理系统, Ubuntu Software Center 将作为前端用户界面,利用 OCS ( Open Collaboration Services) 作为用户评价及评论工具,利用 Xapian servers 提供搜索服务。

而带有包信息、图标位置、仓库类型等的元数据将被存储于专门的服务器上。另外还会利用别的服务器从 .desktop 文件(参与的发行版需要提供各自的包)中提取包信息并输出所有信息到通用 XML 文件中,同时提交给每个发行版各自的包管理系统中。

- 整体架构图:  / Wiki 文档

- 结论

AppStream不会取代各发行版现有的包管理机制,它只在这一层面上提供了一个通用型的软件安装框架,以便不同发行版的终端用户能用同一种方式来安装应用软件。同时它还提供一个用于评分/评论的社会化平台。

我们可以这样设想一下,也许这种技术将会为我们带来一个类似于 MAC App Store 那样的 Gnu/Linux  APP Store ,这岂不是超赞的事情。

- 注

  • [1] PackageKit 是一个适用于 Linux 系统的新的包管理器。它包括运行在后台的守护程序 packagekitd 和前端界面程序 gnome-packagekit 两部分。PackageKit 的优势在于它试图成为一个跨发行版本及跨架构 API 的 Linux 通用包管理器。PackageKit 支持将 yum、conary、apt、box、pacman/alpm 等作为后端。(来源: LinuxToy)

- 参考

  1. Ostatic : One Package Manager for them All
  2. Phoronix: Introducing AppStream, Multi-Distro App Framework
加入我们 / 来 Wow!Ubuntu 问答社区参与更多讨论

20 Responses to AppStream: Linux 软件统一安装框架

Avatar

lewis

Firefox 3.6.12 Firefox 3.6.12 Windows 7 Windows 7

January 27th, 2011 at 2:32 pm

cool~

Avatar

xndcn

Firefox 3.6.10 Firefox 3.6.10 Ubuntu 10.10 Ubuntu 10.10

January 27th, 2011 at 2:33 pm

统一的前端,分立的后台,这是一个统一的好思路
再把前端迁移到云端就更美好了。当迁移到其他发行版时可以自动安装以前装好的那些软件

Avatar

molezz

Google Chrome 8.0.552.237 Google Chrome 8.0.552.237 Windows 7 Windows 7

January 27th, 2011 at 2:36 pm

对, 这个早该弄了, 不用来回的折腾yum或apt-get, 统一以后, 使用各发行版也方便一点

Avatar

ubuntuus

Google Chrome 8.0.552.237 Google Chrome 8.0.552.237 GNU/Linux GNU/Linux

January 27th, 2011 at 3:04 pm

那各大发行版之间的区别就只剩界面,主题,风格等浮云了

Google Chrome 10.0.642.2 Google Chrome 10.0.642.2 GNU/Linux GNU/Linux

riku Reply:

@ubuntuus, 没有啊,它不会取代各发行版现有的包管理机制,只是再加了一层。

Avatar

rox

Google Chrome 8.0.552.237 Google Chrome 8.0.552.237 Windows XP Windows XP

January 27th, 2011 at 3:05 pm

好消息,不过前两天,刚刚看到Fedora的新网卡命名规则,很郁闷!

Avatar

App Installer: Linux软件统一安装框架 « 每日IT新闻,最新IT资讯,聚合多站点消息,保证你与世界同步

WordPress 2.7 WordPress 2.7

January 27th, 2011 at 3:30 pm

[...] riku 写道 “要说各大 Linux 发行版之间最大的区别是什么?我想最明显的一点就是很多发行版都有自已一套独立的包管理系统,比如 Debian 系的有 Deb 包及 apt 系统、 Redhat 系的有 rpm 及 yum 系统、Archlinux 有 Pacman 、Gentoo 有 emerge ,这种分散的软件打包方式对于桌面用户及开发者而言带来了相当大的不便。不过值得期待的是,这种困境在也许在未来将会得到改变。 事情是这样的,最近一群来自于 RedHat, Fedora, Debian, Ubuntu, openSUSE, Mandriva 和 Mageia 等各大发行版及 Linux 厂商的开发者们,聚集在位于德国纽伦堡的 Suse 办公室,举行了一次名为“App Installer Meeting”的技术会议 ( 53 分钟长的会议视频 / Wiki 文档 )。这次会议的主要目的就是商讨如何实现一个通用型的 Linux 软件统一安装框架,项目名称可以暂定为 App Installer ( 或者也可以称之为appstream , app store, market place, software center 等等,总之因为是初始阶段,还没有定论)。 不同于之前 Ryan Gordon 提出的 FatELF 格式 ( 它需要把 kernel 模块、依赖包、库及软件文件等打包成巨大的文件,因此这个项目后来难产了),App Installer 的灵感来源于 Bretzn Project 项目,它的实现机制简单来说就是当开发者发布代码后,它会为不同的发行版及架构打包软件,并通过一个统一的平台进行分发。技术详情及整体架构图。” [...]

Avatar

riku

Google Chrome 10.0.642.2 Google Chrome 10.0.642.2 GNU/Linux GNU/Linux

January 27th, 2011 at 3:40 pm

我想说的是,未来可能会在其它发行版上也能见到 Ubuntu Softer Center 的影子。

Avatar

sgsgyg

Firefox 3.6.13 Firefox 3.6.13 Windows XP Windows XP

January 27th, 2011 at 6:03 pm

好消息,期待统一的一天,社区需要竞争也需要更多的合作

Avatar

NIX

Google Chrome 10.0.612.1 Google Chrome 10.0.612.1 GNU/Linux GNU/Linux

January 27th, 2011 at 7:03 pm

应该赶快到来,明年能用上么?

Avatar

fanhe

Firefox 3.6.13 Firefox 3.6.13 Ubuntu 10.04 Ubuntu 10.04

January 27th, 2011 at 11:08 pm

最大的好处是方便了开发者,用户还是该apt的就apt,该yum的就继续yum

Google Chrome 10.0.628.0 Google Chrome 10.0.628.0 GNU/Linux x64 GNU/Linux x64

riku Reply:

你搞反了,是方便了用户,开发者干得还跟原来一样。

Avatar

书痕

Google Chrome 8.0.552.224 Google Chrome 8.0.552.224 GNU/Linux GNU/Linux

January 28th, 2011 at 8:45 am

对于想用Ubuntu的用户而言,似乎这比到处找软件下的windows软件安装方式更方便了

Avatar

chrisniu1984

Google Chrome 8.0.552.237 Google Chrome 8.0.552.237 GNU/Linux x64 GNU/Linux x64

January 28th, 2011 at 9:57 am

顶,linux阵营对抗其他阵营就需要解决分裂问题(至少从前端解决)

Avatar

R.

Opera 11.00 Opera 11.00 GNU/Linux GNU/Linux

January 28th, 2011 at 11:43 am

AppStream不会取代各发行版现有的包管理机制,它只在这一层面上提供了一个通用型的软件安装框架,以便不同发行版的终端用户能用同一种方式来安装应用软件。同时它还提供一个用于评分/评论的社会化平台。

希望能有积极的效果

Avatar

App Installer: Linux软件统一安装框架 | 四有流氓

WordPress 3.0.4 WordPress 3.0.4

January 28th, 2011 at 12:47 pm

[...] 不同于之前 Ryan Gordon 提出的 FatELF 格式 ( 它需要把 kernel 模块、依赖包、库及软件文件等打包成巨大的文件,因此这个项目后来难产了),App Installer 的灵感来源于 Bretzn Project 项目,它的实现机制简单来说就是当开发者发布代码后,它会为不同的发行版及架构打包软件,并通过一个统一的平台进行分发。技术详情及整体架构图。” [...]

Avatar

lowstz

Google Chrome 9.0.597.45 Google Chrome 9.0.597.45 GNU/Linux GNU/Linux

January 28th, 2011 at 1:29 pm

有这个尝试其他发行版就方便多了

Avatar

Mucid

Firefox 3.6.13 Firefox 3.6.13 Ubuntu 10.10 Ubuntu 10.10

January 28th, 2011 at 10:39 pm

我感觉apt是最好的包管理……

Avatar

Agas

Safari 5.0.3 Safari 5.0.3 Mac OS X 10.6.6 Mac OS X 10.6.6

January 29th, 2011 at 11:20 pm

可能只是个入口,然后根据各系统下载所需的文件?

Avatar

血衫非弧

Google Chrome 11.0.696.68 Google Chrome 11.0.696.68 GNU/Linux GNU/Linux

May 20th, 2011 at 3:48 pm

方便用户是好事~!

top