“Apps”和“packages”的概念和技术差异是什么?

我对最近的宣布(http://developer.ubuntu.com/2011/09/announcing-the-ubuntu-app-developer-site/)关于新的“App”开发者网站感到有些困惑。我已经脱离了Ubuntu开发,现在只通过新闻报道来了解操作系统的走向,而没有意识到这一点。也许社区中的某人可以给我解释清楚。

我非常熟悉Ubuntu、Linux、编程和打包,但我不确定Ubuntu应用程序和Debian软件包之间的概念和技术差异是什么。我稍微查阅了一些开发者社区的文档,但没有找到一个明确的答案。一个Ubuntu应用程序是否可以被视为一个特别配置的支持Ubuntu应用框架的软件包?这有多灵活?例如,我能否使用Qt编写一个应用程序,然后将其包装成一个应用程序呢?

(顺便说一句,我有点担心Ubuntu正朝着这个方向发展。我理解Ubuntu应该探索支持多种应用程序开发和分发途径以保持相关性。但对于像我这样的工程用户来说,这感觉像是累赘。不过,这些言论是无知的。在了解情况之前,我不应该形成坚定的观点。)

2个回答

一个Ubuntu的“应用程序”就是一个应用程序,就像GIMP、Firefox或其他任何应用程序一样。
它们仍然是Debian软件包,我们只是提供了一个名为Quickly的工具,让人们能够使用PyGTK,并且轻松地打包和提交到软件中心。
你仍然可以使用Qt编写你的应用程序,打包它,并提交到软件中心,我们只是试图简化连接像你这样的开发者,使你更容易将软件发送给最终用户。

1啊,好的。根据你在publish部分的第5步中的备注,我看到现有的Debian软件包也可以被添加进来。所以为了确保我理解正确,"app"只是一个普通的应用程序,仍然使用Debian打包方式。我想我之前误以为"App"是指更小、主要基于触摸操作的应用程序。看来它可以是任何东西!谢谢你澄清这点! - perden
1你也可以把应用程序看作是轻量级的应用,可以以不同的方式提交到软件中心,但在分发给用户时采用相同的有效方式。它们还使用相同的打包技术(Debian打包和软件中心)进行分发。我们希望让开发这类软件的开发者更容易地提交并在Ubuntu上发布,这就是为什么我们开发了在线工具作为应用开发者网站的一部分,以实现这一目标。 - David Planella
然而,更复杂的应用程序可能不符合此流程(例如,开发新的LibreOffice),在这种情况下,作者将被引导到通常的Debian/Ubuntu软件库途径,这仍然是大多数软件现在进入Ubuntu的方式,并且由于现在应用程序的提交方式不会改变,这种方式也不会改变。 - David Planella

一个应用程序被提供为一个软件包,但并不是所有的软件包都是应用程序。例如,可以提供一个或多个字体作为软件包。换句话说,软件包和应用程序之间存在概念上的区别,但应用程序和软件包之间没有区别。
是的,您可以使用任何语言和框架来开发应用程序。Quickly提供了非常简单的起点,主要推荐使用Python和GTK,但也提供了Ruby和其他语言的模板,以及用于Web开发而不是桌面应用程序的模板。Quickly的设计目标是不限制开发者在语言上的选择,并且(希望显而易见地)不会限制在Ubuntu上。如果您的应用程序支持插件,还可以自己提供模板。Quickly的作用是帮助您省去编写乏味样板代码的工作。
要使用MyApps门户发布应用程序,需要一些要求,比如您的应用程序必须使用XDG_USER_DIRS来存储其数据和配置文件,必须能够安装到/opt等。除此之外,没有其他要求。您可以使用Java、Python、C*、Gambas或任何其他受支持的语言编写您的应用程序,并使用您喜欢的任何GUI工具包。这是有道理的,因为现代版本的Ubuntu的主要目标是统一Qt、GTK和其他工具包,以提供更好的用户体验。
希望这能稍微澄清一些,让你对Ubuntu的发展方向不再那么担心。 :)

是的,谢谢你添加了更多的细节!我喜欢在支持这一点上不受任何特定配置的限制。正如我在评论中对Jorge提到的,我猜我被移动空间对“App”的定义所影响:小型、触摸界面、分隔式、刚性(就开发而言)。保持这种灵活性对于Linux开发和Ubuntu的理念来说至关重要,希望能平息一些人的顾虑。现在我理解了,我很期待看到它的发展! - perden