如何为Ubuntu Snappy重新打包.deb文件?

我想要将一些Ubuntu软件转换成.deb格式,具体来说是guake,以便为Ubuntu Snappy创建软件包。

根据{{link2:Ubuntu开发工具的文档说明}所述,

All metadata lives in meta/package.yaml. The details of that file are documented in the snappy developer documentation, but in short, it's super simple and you can get away with something as straightforward as:

name: pkgname  
version: version-string  
apps:  
  binary:  
   - command: path/to/binary  
  another-binary  
   - command: path/to/another-binary  

... your package is called "pkgname" ... version "version-string" and ... binaries, called pkgname/name and pkgname/another.

我自己谷歌了一下, 发现关于这种转换的主题资料很少。
作为一名建筑工程师,出于职业原因,以及对Ubuntu的热爱,我可能会从学习这种东西中受益。
一个.deb文件如何转变成snap*文件呢?
* 显然,Ubuntu Snappy的软件包格式被称为"snap"格式。

4这可能是一个值得一看的好东西,我自己没有尝试过,但可能会帮助某人形成一个答案:https://github.com/mikix/deb2snap - Mateo
其实,那似乎是一个相当不错的答案。 - Nathan Basanese
1deb2snap不再维护。 - dholbach
2个回答

看一下这个简单示例的链接:https://github.com/ubuntu/snappy-playpen/blob/fd5d4a3a1e3f0acc13370adbf98c9a3481d1328a/leafpad/snapcraft.yaml

这里关于snapcraft.yaml的相关部分是: parts: leafpad: plugin: nil stage-packages: [leafpad]

在这里,你定义了一个名为leafpad的部分,对该部分不需要进行任何操作(使用nil插件),但要将Ubuntu软件包leafpad的内容进行适配。就是这样。

https://developer.ubuntu.com/snappy/build-apps/上肯定有更多相关信息。


// ,对我来说并不明显。这个回答的尝试并不是很全面,但我可能可以从那些链接页面的内容中拼凑出一些东西。我不再在使用Ubuntu的生产或开发环境中工作了,但我仍然有些好奇心。 - Nathan Basanese
1这不是一个好的解决方案,Debian软件包不仅仅是压缩文件,它们还包含了像preinst、postinst、prerm、postrm等脚本。没有这些脚本,它们将无法正常工作。 - Tele

我发现了deb2snap,它可以将deb软件包转换为snaps。
但我还没有尝试过。

3不再维护了。 - dholbach
@dholbach,你为什么这样说?/\ - Nathan Basanese
3因为Michael Terry是我的同事,他已经不再参与deb2snap的工作了。最后一次提交是一年前,而且自那时以来,snapd/snapcraft已经有所发展。 - dholbach