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?
小智 0
WebUPD8 的 Atom PPA 只是提供预构建的二进制文件。它的工作原理如下:
atom-linux32.tar或中atom-linux64.tar,添加图标、桌面文件等,并将其打包为原始tarball(上游在 Launchpad 方面提供的源)。debian/的打包部分,该部分应该构建包 - 但实际上它不构建任何东西,它只是检查它运行的架构并基于该架构解包适当的存档,以便它“查找”DPKG构建系统二进制文件已构建atom-linux(32|64).tarinstall目标中的文件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 构建期间重复使用。所有这些都非常复杂,容易出错,并且需要具有与构建环境相同的环境等,并且可能不值得付出努力。替代解决方案可能是将您的应用程序作为快照图像分发。
| 归档时间: |
|
| 查看次数: |
783 次 |
| 最近记录: |