如何为 Ubuntu 软件中心创建桌面应用程序?

Mj *_*Dev 4 software-center software-recommendation application-development

我想为 Ubuntu 开发桌面应用程序并将它们推送到 Ubuntu 软件中心。

我搜索了整个互联网,但找不到关于这个主题的任何合适的文章或博客。我想过“快速”使用,但这个包似乎已被弃用。任何人都可以建议我应该使用哪个平台以及我需要的设置吗?提前致谢。

use*_*733 6

Ubuntu 没有“官方”开发平台或设置。使用最适合您的方法。如果您说出一种通用编程语言或 IDE,那么有人会使用它为 Linux 进行开发。使用您喜欢的任何平台或设置,但您可能会发现在 Ubuntu 上开发您的第一个 hello-world 应用程序会使您的软件更易于测试。

有两种方法可以打包您的软件并将其推送到 Ubuntu 软件存储库:Deb 包和 Snap 包。如果您不确定要选择哪个,请尝试两者。

Deb 软件包使用 Debian 颁布的标准。它比 Snaps 更古老、更复杂,但易于维护并且没有任何黑盒巫术。Debian 软件包在整个安装系统中共享公共依赖项,因此必须为新版本重新构建软件包……但是 Debian 构建农场可以完成这项工作。您将可构建的代码贡献给 Debian,并且软件包会神奇地找到所有基于 Debian 的发行版的下游,包括未来版本的 Ubuntu。

Snap 包更新、跨平台、通常更安全,并且具有更复杂的内部配置。Snaps 包含所有依赖项,因此往往具有更大的包大小。您运行负责打包和上传的 Snapcraft 神奇应用程序。在您的 Snap 获得 Mighty Guardians of The Snap Store 的批准后,它会立即显示在 Ubuntu 软件中。快照可以(由您)随时更新,并且这些更新与底层系统更新没有关系(因为没有共享依赖项)。


Nat*_*e T 5

~Tl;博士~

如果您的应用被 Snap 接受/添加,即您可以输入:

sudo snap install --options myappname
Run Code Online (Sandbox Code Playgroud)

...为了安装您的应用程序,它将位于“Snap 商店/软件中心”中。他们是一样的。

~详情~

要将应用程序添加到软件中心,它首先需要是一个 .deb 包。为了将它正确安装到 Ubuntu 操作系统中,它必须是一个 Debian 包。我相信这是通过几个步骤完成的,其中第一个步骤涉及 autotools。

该标准由 GNU 监督。指南将告诉您需要了解的一切。

至于让你的 .deb 包到“软件中心”,关键是首先要知道,对于 Ubuntu 的最后几个版本,“软件中心”只是快照商店的一个前端。您在那里下载的每个应用程序都很快。

因此,您需要搜索的信息是“如何快速获取我的应用程序”。是有关该主题的重要资源。

至于您需要用什么语言来编写它,这并不重要,至少在这种情况下是这样。大多数传统上都是用 C 编写的,但人们可能会在那里找到一个包含任何组合的包。

当然,包需要在目标环境中运行,但包是一种容器,所以你可以在其中包含你自己的环境。

如果您使用 Python 构建,为什么不直接构建到虚拟环境并打包整个该死的东西呢?这样它每次都在同一个解释器上运行。Java 和 JVM、C/C++ 和 GCC 等也是如此。

您还包括您的应用程序需要的任何依赖项。这不仅包括运行时依赖项,还包括安装程序等。这些通常只是 Bash 脚本,但同样,语言并不重要。

老实说,包里面的东西是标准化的(你需要某种类型的开源许可证等),但 debian 系统所关心的只是接口。dpkg 需要知道安装时发生了什么。只要给出清晰易懂的指令,它就知道把所有东西放在哪里,结果是一个应用程序系统按照用户的期望运行,你就有了一个有效的 .deb 包。

也就是说,如果你想要一个有效的 Snap 包,我可以保证你的限制会更严格一些。最好遵循我从一开始就链接的标准。

编辑

我最近在 Github 上发现了一些资源,它们可以自动化快照的构建和发布过程。它们都是由 Snapcraft 维护的 github 操作。通过这些组合,任何兼容的应用程序都可以变成一个已发布的快照。

它们位于此处(快照生成器)和此处(快照发布器)。