使用案例:我在Mac,Windows和Linux下编译hello.c
,让我们调用三个可执行文件hellomac
,hellowin
,hellotux
并想象它们被打包在一起档案名为hello.zip
。现在让我们使用0install分发它们。用户应该能够转到http://www.hello.org/Hello.xml
然后0install
然后下载hello.zip
并提取适合用户平台的二进制文件(例如Linux上的hellotux
)。
有没有人有一个示例0install
Feed文件,其中包含针对此类情况的必要咒语?我浏览了教程,但无法正确设置必要的XML ...任何帮助将不胜感激。谢谢!
答案 0 :(得分: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,但如果它们都是相同的存档则不起作用。)
就个人而言,即使在那种情况下,我也会把大拉链分成三个。
答案 1 :(得分:1)
感谢Thomas和Bo的提示。现在我了解如何逻辑地组合档案。
配方:
为每个平台创建存档。然后使用0publish-gui
首先“创建组”,然后针对每个特定于平台的存档重复单击“添加存档”。指定存档的URL但不要下载它,因为已经存在:使用“本地复制”按钮来帮助0publish-gui
找出存档大小和SHA摘要。最后将所有内容上传到您的网络服务器。
这是我的简单Hello.xml文件,以帮助其他人入门。 Windows抱怨“XML(11,21)”中的错误,但同样的XML在Linux和Mac OS X下工作。统一赢得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) -->