为 Red Hat Enterprise Linux (RHEL) 8 构建 snap RPM
Snap 目前可用于 Red Hat Enterprise Linux (RHEL) 8和 RHEL 7.6+。有关安装说明,请参阅在 Red Hat Enterprise Linux (RHEL) 上安装 snap。
但是,如果您是高级用户并希望了解snap是如何构建的,则可以相对容易地构建和手动安装其 RPM,如下所述。
手动构建 RPM
首先,需要添加以开发人员为中心的新CodeReady Linux Builder和AppStream附加用户空间应用程序存储库,然后是Extra Packages for Enterprise Linux存储库:
$ sudo subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms
$ sudo subscription-manager repos --enable rhel-8-for-x86_64-appstream-rpms
$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
接下来,刷新包列表并安装一些依赖项:
$ sudo dnf upgrade
$ sudo dnf module install go-toolset
$ sudo dnf install rpmdevtools
snapd 代码库包含一个RPM SPEC 文件,其中包含用于构建 RPM 包的配方。要设置 RPM 构建环境,首先在您的主目录中准备 RPM 树,获取源 tarball 并提取 RPM 规范:
$ rpmdev-setuptree
$ cd ~/rpmbuild/SOURCES
$ curl -L \
https://github.com/snapcore/snapd/releases/download/2.42/snapd_2.42.no-vendor.tar.xz \
-o snapd_2.42.no-vendor.tar.xz
$ tar -xvJ -C ~/rpmbuild/SPECS --strip-components=3 \
-f snapd_2.42.no-vendor.tar.xz \
snapd-2.42/packaging/fedora/
然后,仍然在 中~/rpmbuild/SOURCES
,获取剩余的发布包并安装构建依赖项:
$ spectool -g ~/rpmbuild/SOURCES/snapd.spec
$ sudo dnf builddep ~/rpmbuild/SPECS/snapd.spec -y
三个 RPM 构成了完整的 snapd 安装,它们的构建方式如下:
$ rpmbuild -bb ~/rpmbuild/SPECS/snapd.spec
最后,可以安装所有三个 RPM 包:
$ sudo dnf localinstall \
~/rpmbuild/RPMS/x86_64/snap-confine-2.42-0.el8.x86_64.rpm \
~/rpmbuild/RPMS/x86_64/snapd-2.42-0.el8.x86_64.rpm \
~/rpmbuild/RPMS/noarch/snapd-selinux-2.42-0.el8.noarch.rpm
安装后,需要启用管理主 snap 通信套接字的systemd单元:
$ sudo systemctl enable --now snapd.socket
现在可以测试 snapd 环境,并希望可以有效地使用:
$ snap install hello-world
重新启动/注销/登录应该将 hello-world 放在路径中。
原文地址:Building a snap RPM for Red Hat Enterprise Linux (RHEL) 8 | Snapcraft documentation