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

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

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

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

答案1

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

有两种方法可以打包软件并将其推送到 Ubuntu 软件存储库:Deb 软件包和 Snap 软件包。如果你不确定选择哪个,那就两个都试试。

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

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

答案2

~Tl;dr~

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

sudo snap install --options myappname

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

~详情~

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

该标准由 GNU 监督。导游会告诉您需要知道的一切。

至于将 .deb 包放入“软件中心”,关键是首先要知道,对于 Ubuntu 的最近几个版本,“软件中心”只是 snap 商店的前端。你从那里下载的每个应用程序都是 snap 的。

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

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

当然,包需要在目标环境中运行,但包是一种容器,因此您只需将自己的环境包含进去即可。

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

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

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

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

编辑

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

它们位于这里(Snap 构建器)和这里(Snap 发布者)。

答案3

我认为您可以使用 qt ide 轻松地在 ubuntu 和其他基于 Linux 的操作系统上制作 GUI 桌面应用程序。它是一种功能强大、用户友好的 Linux GUI 软件设计工具。

相关内容