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

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

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

软件中心每个应用程序仅支持单个二进制包是否正确? 我可以尝试为每个构建创建新的应用程序,但这似乎是一个错误的解决方案。

解决问题的任何提示?

MyApps未设置为处理每个arch / series的单独二进制文件的情况。

我建议只是确保你的所有二进制文件都能找到审阅者,他们会为你上传正确的二进制文件到PPA(直到myapps更新来处理这种情况)。

  • 选项1:如果您的二进制文件很小,请将它们一起gzip到一个文件并使用包上载字段
  • 选项2:如果它们很大,将它们上传到其他地方(Ubuntu1或Dropbox)会更容易,并通过url分享它们,并注意到你的myapps提交。
  • 选项3 :(我需要检查这是否合适,政策方面)如果你的二进制文件在Launchpad的构建服务上构建正常,创建一个PPA,在IRC上找到我(freenode上的noodles775),我们可以私有化你的PPA,那么你可以输入你的源码并让它们由LP自动构建为distroseries / archches。

在我看来,myapps网站的设计主要针对Python / GTK应用程序 – 只有最新版本的跨平台应用程序。 由于这些原因,没有设施可以允许基于CPU和版本进行选择,尽管很明显,软件中心确实存在该工具,并且使用存储库进行自动更新。

我认为如果你想为不同的版本和CPU发布程序的编译版本(二进制文件),myapps是错误的工具。 您可能需要考虑在Launchpad上设置项目并成为开发的主流。

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

或者,我认为PPA应该能够设置为对32位和64位版本执行所需的操作,但是它与使用myapps发布不同,因为在有人将PPA添加到其源代码之前它们将无法访问。

应该考虑迈克尔·尼尔森的答案 ,咳咳,“规范”,但由于我的草案差不多完成了,这是我的两分钱:)

我认为Dev Portal关于如何上传专有软件包的政策几乎解释了为什么你有这个问题以及你的替代方案:

在此处输入图像描述

让我们分解一下:

  1. 来源或二进制文件

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

    • 如果你选择这个选项,你需要做的就是(a)确保你想要定位的最旧版本的repos中有任何依赖项,并且(b)你的应用程序不使用任何新的function/这些依赖项中的API / ABI,例如12.04,但在11.04失败。
    • 在这种情况下,我相信Canonical / Soyuz(构建系统)将负责为每个版本创建多个包。
  3. 让一个人参与 – 将你所有不同的二进制文件打包成一个巨大的tarball并联系noodles757 ; p

只需使用更新管理器进行更新即可完成

使用Synaptic或aptitude而不是Ubuntu软件中心。 这样,您可以更准确地控制要安装哪些软件包,并且可以在安装软件包之前检查依赖项,推荐软件包等。

使用Launchpad的PPA系统 – 创建一个简单的Ubuntu存储库。 转到launchpad.net。 如果您注册,您应该能够为同一个包添加不同的版本。