0

用例:我在 Mac、Windows 和 Linux 下编译hello.c,我们称这三个可执行文件hellomac, hellowinhellotux并想象它们被打包在一个名为hello.zip. 现在让我们使用0install分发它们。用户应该能够去http://www.hello.org/Hello.xml然后0install应该下载hello.zip和提取适合用户平台的二进制文件(例如hellotux在Linux上)。

有没有人有一个示例0install提要文件,其中包含针对这种情况的必要咒语?我浏览了教程,但无法正确设置必要的 XML ......任何帮助将不胜感激。谢谢!

4

2 回答 2

2

正如 Bo 在评论中所说,拥有三个 zip 文件更有意义,每个平台一个。然后 XML 列出它们中的每一个,例如

<implementation arch='Linux-i386' ...>
  <archive href='.../hello-linux-i386.zip' size='...'/>
</implementation>
<implementation arch='Windows-i386' ...>
  <archive href='.../hello-win-i386.zip' size='...'/>
</implementation>

您可能会发现这些文档很有用:

但是,如果您确实需要包含三个二进制文件的单个 zip(例如,因为您正在为现有的 zip 存档制作提要),请使用<implementation>具有相同<archive>但不同main属性的三个元素。确保为每个使用不同id的(默认工具使用实现的哈希作为其 ID,但如果它们都是相同的存档,则将不起作用)。

就个人而言,即使在那种情况下,我也会将大拉链分成三个。

于 2012-06-28T19:56:44.483 回答
1

感谢 Thomas 和 Bo 的提示。现在我明白了如何合理地组合档案。

食谱:

为每个平台创建档案。然后0publish-gui首先“创建组”,然后为每个特定于平台的存档重复单击“添加存档”。指定存档的 URL,但不要下载它,因为您已经拥有它:使用“本地副本”按钮来帮助0publish-gui确定存档大小和 SHA 摘要。最后将所有内容上传到您的网络服务器。

这是我的简单 Hello.xml 文件,以帮助其他人入门。Windows 抱怨“XML 中的错误 (11,21)”,但相同的 XML 在 Linux 和 Mac OS X 下也可以工作。Unices 以 2:1 获胜 :-)

<?xml version="1.0" ?>
<?xml-stylesheet type='text/xsl' href='interface.xsl'?>
<interface uri="http://www.hello.org/Hello.xml" xmlns="http://zero-install.sourceforge.net/2004/injector/interface">
  <name>Hello</name>
  <summary>Hello, world!</summary>
  <description>
Hello, world program</description>
  <homepage>http://www.hello.org</homepage>
  <category>Utility</category>
  <needs-terminal/>
  <group arch="*-*" released="today" version="0.1">
    <implementation arch="Linux-x86_64" id="sha1new=aadb5dca492691888bb5d846f23a2b208a9b7d9e" license="Public Domain" main="hellotux" released="2012-06-29" version="0.1">
      <archive href="http://www.hello.org/hello_tux.zip" size="3298" type="application/zip"/>
    </implementation>
    <implementation arch="MacOSX-x86_64" id="sha1new=8a6c3f898fb938532b4dfd55000507e806524ce7" license="Public Domain" main="hellomac" released="2012-06-29" version="0.1">
    <archive href="http://www.hello.org/hello_mac.zip" size="1637" type="application/zip"/>
  </implementation>
    <implementation arch="Windows-x86_64" id="sha1new=8f8a5cd1aeb4771acaa2017e1054e89d7c11facc" license="Public Domain" main="hello.exe" released="2012-06-29" version="0.1">
    <archive href="http://www.hello.org/hello_win.zip" size="26131" type="application/zip"/>
  </implementation>
  </group>
</interface>
<!-- Base64 Signature (omitted) -->
于 2012-06-29T09:35:46.413 回答