如何为 sbt-native-package 指定 RPM_BUILD_ROOT

Posted

技术标签:

【中文标题】如何为 sbt-native-package 指定 RPM_BUILD_ROOT【英文标题】:How to specify RPM_BUILD_ROOT for sbt-native-package 【发布时间】:2015-10-28 20:00:02 【问题描述】:

我有一个想要通过 RPM 部署的 Play 项目。我正在尝试使用 SBT 在 CentOS 上使用 sbt-native-packager RPM 插件构建 RPM。 最后我 gt rpm 包。 但它存储在 %appname%/target/rpm 下的目录中 如何使用自己的 rpm buildroot 树路径? 比如说 /home/build/buildroot

使用中的 Sbt-native-packager 版本 0.8.0。

【问题讨论】:

这样做的目的是什么?您可以更改 target in Rpm 设置,但我强烈建议您不要这样做。该构建只能在具有此路径的机器上运行。 训练解决 sbt rpm:packageBin 任务的问题。它像这样打印我: [info] Executing(%install): /bin/sh -e /tmp/sbt_f3554995/rpm-tmp.SDC7gK [error] + umask 022 [error] + cd /data/src /auth-server/target/rpm/BUILD [错误] + '[' /data/src/auth-server/target/rpm/buildroot '!=' / ']' [错误] + rm -rf /data/src /auth-server/target/rpm/buildroot 【参考方案1】:

简单(以 rpm 配置为中心)的答案是在调用 rpmbuild 之前在 ~/.rpmmacros 中配置 %_topdir。 SBT 可能会增加额外的复杂性。

【讨论】:

它仍然没有帮助我。看起来 sbt-native-apckager 不关心在用户环境级别指定的变量。我有以下宏配置: rpm --showrc|grep topdir -14: _builddir %_topdir/BUILD -14: _buildrootdir %_topdir/BUILDROOT -14: _rpmdir %_topdir/RPMS -14: _sourcedir % _topdir/SOURCES -14: _specdir %_topdir/SPECS -14: _srcrpmdir %_topdir/SRPMS -14: _topdir /home/centos/rpmbuild

以上是关于如何为 sbt-native-package 指定 RPM_BUILD_ROOT的主要内容,如果未能解决你的问题,请参考以下文章

Scala SBT - sbt-native-packager,如何指定自定义阶段目录

如何在多个项目中使用 sbt-native-packager

如何为 sbt native packager 的 DockerPlugin 设置基础镜像?

如何为@Valid 指定验证组?

如何为 Jcrop 'setSelect' 选项指定自定义值?

如何为 spectrify python 包指定 s3 配置?