电子应用程序作为 PPA

Mat*_*ías 5 launchpad ppa nodejs electron

我一直在做一些研究:你不能从 Node.js 应用程序构建 PPA

显然,这不是一个规则,因为有一些项目已经成功地实现了这一点。WebUDP8就是一个例子;他们为 Atom IDE(使用 Electron)和 Popcorn Time(使用 Node-Webkit)构建 PPA

我做了任何人都会做的事情:打扰这些人,因为没有文档(或者至少,我没有找到)。

他们的回答:

Launchpad PPA 尚不支持 nodejs,因为它们不允许获取外部资源。因此,Popcorn TIme PPA 曾经是一个简单的安装程序,可以从其服务器自动下载 Popcorn Time。

但是,据我所知,我没有使用外部资源。这不像我从 package.json 下载依赖项。它们都是--save在d文件夹中构建的。

如何制作我的 Electron 应用程序的 PPA?软件中心是否也适用于 PPA,还是仅适用于 .deb?

JP *_*rre 3

我想你是对的。如果 Atom 有自己的 PPA,那么任何 Electron 应用程序都可以。

这应该会有所帮助: 如何创建 PPA?


小智 0

WebUPD8 的 Atom PPA 只是提供预构建的二进制文件。它的工作原理如下:

  1. WebUPD8 像往常一样在其基础设施上构建 Atom(可以访问互联网)。
  2. 一旦他们拥有包含所有必需文件的 x86 和 amd64 二进制文件,他们会将它们打包到atom-linux32.tar或中atom-linux64.tar,添加图标、桌面文件等,并将其打包为原始tarball(上游在 Launchpad 方面提供的源)。
  3. 然后他们添加源代码debian/的打包部分,该部分应该构建包 - 但实际上它不构建任何东西,它只是检查它运行的架构并基于该架构解包适当的存档,以便它“查找”DPKG构建系统二进制文件已构建atom-linux(32|64).tar
  4. 从那里开始,一切都是一样的,install目标中的文件debian/rules将被打包为该架构的二进制包。

这对于用户来说既不好也不安全,因为这样的二进制文件可能包含由 WEBUPD8 或有权访问其构建二进制文件的基础设施的人添加的恶意代码。我还认为将二进制文件打包为源包是对Launchpad PPA 政策的规避和滥用,理由是:

注意:我们不允许上传预构建的二进制包。

正如这个答案中也提到的。

您可以通过从此页面下载原始源存档及其debian 补丁来检查他们是如何做到的:https: //launchpad.net/~webupd8team/+archive/ubuntu/atom/+packages(包详细信息)。

正确的方法是将所有必需的文件(整个node_modules/、所有电子源文件等)预取到包中,并从 Launchpad 构建服务器上构建应用程序debian/rules。即使您node_modules/在构建过程中在 Electron 中拥有所有文件,也会从 Internet 下载某些位,但这在 Launchpad 中不起作用。

Electron 有一个选项,允许在您的计算机上缓存构建工件源(因此理论上您可以将它们包含在源包中),然后在 Launchpad 构建期间重复使用。所有这些都非常复杂,容易出错,并且需要具有与构建环境相同的环境等,并且可能不值得付出努力。替代解决方案可能是将您的应用程序作为快照图像分发。