Open superphiz opened 2 years ago
Wrote up some (very rough) notes in https://hackmd.io/IeXF59JNQ4qTpP2-plln9A
The summary is that there's basically two ways we can go about this:
We could build an actual PPA that's deployed to Ubuntu LaunchPad. This would need to be a deb source package that LaunchPad could build for us. The advantage is that it's simple for users to add as a source with just sudo add-apt-repository consensus/teku
. The downsides are that it's significantly more complex for us to build and maintain a suitable source package, and it would potentially violate our usual policy of compiling once then testing and shipping that same built distribution. A problem introduced in the building of the PPA (most likely because the PPA source package misconfigured the build) would not be picked up by any of our testing because it's being done right at the point of publishing.
Alternatively we could build a .deb
package with fpm
and publish it to a Debian repository using our existing artefacts repo with Cloudsmith. fpm
makes building the package simple and we can reuse the existing distribution artefacts the same way we do when building the docker image. We also reuse the existing security infrastructure and access controls as we're already publishing to Cloudsmith. The downside is that its more difficult for users to add the repository. Cloudsmith provide a script you can download and run as root that will add the package or users need to manually add the gpg key and the repo as a source. See the doc linked above for the full details. That only needs to be done once though and then updates are simple apt update
.
Given we're Ethereum core devs not Debian package maintainers I'm not sure we're well placed to try and maintain a PPA via LaunchPad and the lack of ability to test it also concerns me. So I'd lean towards either publishing the .deb file via Cloudsmith if it's likely to get enough usage despite the more complicated initial setup, or leave it to the community to provide Debian/Ubuntu packaging (which we'd eagerly support).
Description
Current available installation methods require downloading and installing packages from github or docker, but these installation methods require significant effort on behalf of the user. Ethereum maintains a PPA and geth is currently most-easily installed using this method. If other clients adopt the PPA installation method it will significantly reduce the effort required to install a Consensus client and enable people with limited technical ability to quickly and easily upgrade their consensus client using standard apt repositories.