Ubuntu 软件中心上有同一个应用程序的多个版本吗?

Ubuntu 软件中心上有同一个应用程序的多个版本吗?

我已经在 Ubuntu 软件中心(https://myapps.developer.ubuntu.com)上发布了我的专有应用程序,现在我想用新版本更新它。

这次我想为一个应用程序上传多个版本(一个用于 Ubuntu 12.04 i386,一个用于 Ubuntu 12.04. amd64,一个用于 Ubuntu 11.10 i386,...)问题是这似乎不可能。新上传的内容会覆盖旧内容。

软件中心只支持每个应用程序一个二进制包,对吗?我可以尝试每次构建都创建新的应用程序,但这似乎是一个错误的解决方案。

有什么解决该问题的秘诀吗?

答案1

MyApps 并未设置为处理每个架构/系列单独二进制文件的情况。

我建议确保您的所有二进制文件都到达审阅者手中,他们会为您上传正确的二进制文件到 PPA(直到 myapps 更新以处理这种情况)。

  • 选项 1:如果您的二进制文件很小,请将它们压缩为一个文件,然后使用包上传字段
  • 选项 2:如果它们很大,可以更轻松地将它们上传到其他地方(Ubuntu1 或 dropbox)并通过 url 共享它们,并在您的 myapps 提交中注明。
  • 选项 3:(我需要检查这从政策上是否可以)如果您的二进制文件可以在 Launchpad 的构建服务上顺利构建,请创建一个 PPA,在 IRC 上找到我(freenode 上的 noodles775),然后我们可以将您的 PPA 私有化,然后您可以 dput 您的源代码并让 LP 自动为发行版/架构构建它们。

答案2

在我看来,myapps 网站主要针对 Python/GTK 应用程序而设计 - 仅限最新版本的跨平台应用程序。出于这些原因,没有允许基于 CPU 和版本进行选择的功能,尽管软件中心和使用存储库的自动更新显然存在该功能。

我认为,如果您想发布针对不同版本和 CPU 的程序编译版本(二进制文件),myapps 不是一种合适的工具。您可能需要考虑在 Launchpad 上设置一个项目,并随着开发进入主流。

https://launchpad.net/projects/+new

另外,我相信 PPA 应该能够被设置为针对 32 位和 64 位版本执行您想要的操作,但是它与使用 myapps 发布不同,因为在有人将 PPA 添加到他们的源之前它们是不可访问的。

答案3

Michael Nelson 的回答应该被认为是“经典的”,但由于我的草稿已经快完成了,所以这里是我的看法:)

我认为 Dev Portal 关于如何上传专有软件包的政策很好地解释了为什么您会遇到此问题以及您的替代方案是什么:

在此处输入图片描述

让我们分解一下:

  1. 源代码或二进制文件

    • 看来您想上传多个二进制文件。通常,专有二进制应用程序要么是静态链接的,要么是将其必要的依赖项与相对路径捆绑在一起,因此不需要通过 安装任何额外内容apt-get,除非ia32-libs
    • 您需要确保这样的二进制文件可以在 Ubuntu 11.04/11.10/12.04(无论您的目标平台是什么)上运行,而不会在任何平台上失败;据我所知,核心要求是用于libc编译您的应用程序/库的文件必须与您希望定位的最旧的内核向后兼容;我相信 Lucid 或更新的任何版本都可以与 Precise 上的当前 libc 2.15 兼容。
    • 如果您提交非 Debian 化的源代码,我不知道 Canonical 为商业开发者提供的打包服务有多广泛,但我认为它必须能够编译为类似于上述“通用”二进制文件的东西。
  2. Debian 源码包:

    • 如果选择此选项,您需要做的就是(a)确保您要定位的最旧版本的存储库中提供了所有依赖项,并且(b)您的应用程序不会在这些依赖项中使用任何新奇的函数/API/ABI,以至于它在 12.04 上运行,但在 11.04 上失败。
    • 在这种情况下,我相信 Canonical/Soyuz(构建系统)将负责为每个版本创建多个包。
  3. 让一个人参与进来——把所有不同的二进制文件打包成一个巨大的 tarball 并联系面条775;p

答案4

使用 Synaptic 或 aptitude 代替 Ubuntu 软件中心。这样,您将能够更好地控制要安装哪些软件包,并且能够在安装软件包之前检查依赖项、推荐软件包等。

相关内容