如何制作可重定位的rpm?

时间:2016-03-30 06:27:51

标签: java maven 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不可重定位

提前致谢。

1 个答案:

答案 0 :(得分:4)

根据RPM.org

  

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

     

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

     

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

     

如果没有重新定位任何前缀,可以在命令行中跳过它们

但是,它继续说在构建可重定位的RPM时可能会出现许多问题(即使您看到Prefix标记)。如果您只想从RPM中提取文件,可以使用相应的工具(例如rpmunpackrpm2cpiounrpm)。

进一步阅读: