繁体   English   中英

如何使可重定位的rpm?

[英]How To make relocatable rpm?

我有带pom.xml的Java应用程序。 我正在用前缀标签制作rpm包。

当我查询rpm的前缀标签时:

sudo rpm -qp --queryformat "%{prefixes}\n" java-hbase-processor-1.0-SNAPSHOT20160330060627.noarch.rpm 

我有==> / var

如果我运行以下命令:

rpm -qi java-hbase-processor | grep Relocations

我得到了:重定位:/ opt / tmp重定位:/ var / tmp

以上说明rpm是可重定位的。 但是如果运行install命令

sudo rpm -i --prefix=/home/sohanvir/ java-hbase-processor-1.0-SNAPSHOT20160330060627.noarch.rpm

它将显示错误消息:

错误:程序包java-hbase-processor无法重定位

提前致谢 。

根据RPM.org

默认情况下,RPM将在spec文件中列出的前缀目录中安装可重定位的软件包。 您可以在RPM安装命令行上使用“ --prefix <dir>覆盖它。 例如,如果要安装的软件包要安装在“ / opt”目录下,但是您的磁盘空间不足(并且是可重定位的软件包),则可以将其安装在“ --prefix / usr / opt”目录下

如果存在多个前缀,则可以使用以下语法分别重新定位每个前缀:

rpm ... --relocate /opt=/usr/opt --relocate /etc=/usr/etc ...

如果没有重新放置任何前缀,则可以在命令行上跳过它们

但是,它继续说在构建可重定位的RPM时可能会有很多错误(即使您看到Prefix标签也是如此)。 如果只想从RPM中提取文件,则可以使用一些工具(例如rpmunpackrpm2cpiounrpm )。

进一步阅读:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM