Java 如何使可重定位rpm?
我有一个带有pom.xml的java应用程序。我正在制作带有前缀标签的rpm包 当我查询rpm的前缀标记时:Java 如何使可重定位rpm?,java,maven,rpm,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 重
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处理器不可重新定位
提前感谢。根据:
默认情况下,RPM将在规范文件中列出的前缀目录中安装一个可重新定位的包。您可以在RPM安装命令行上用“-prefix
”覆盖此选项。例如,如果所讨论的包将安装在“/opt”中,但您没有足够的磁盘空间(并且它是一个可重新定位的包),则可以安装它“-prefix/usr/opt”
如果有多个前缀,可以使用以下语法分别重新定位每个前缀:
rpm--重新定位/opt=/usr/opt——重新定位/etc=/usr/etc…
如果没有重新定位任何前缀,可以在命令行上跳过它们
然而,它接着说,在构建可重定位RPM时可能会出现一些问题(即使您看到前缀标记)。如果您只想从RPM中提取文件,则有相应的工具(例如,或unrpm
)
进一步阅读:
-
可重新定位的包是一个在各个方面都是标准的包,只保留一个。区别在于前缀标记。将此标记添加到规范文件时,RPM将尝试构建可重新定位的包
注意“尝试”一词。在成功构建可迁移包之前,必须满足一些条件,本章将介绍所有这些条件。但首先,让我们看看RPM如何准确地重新定位包。包重新定位的核心部分是前缀标记
根据:
默认情况下,RPM将在规范文件中列出的前缀目录中安装一个可重新定位的包。您可以在RPM安装命令行上用“-prefix
”覆盖此选项。例如,如果所讨论的包将安装在“/opt”中,但您没有足够的磁盘空间(并且它是一个可重新定位的包),则可以安装它“-prefix/usr/opt”
如果有多个前缀,可以使用以下语法分别重新定位每个前缀:
rpm--重新定位/opt=/usr/opt——重新定位/etc=/usr/etc…
如果没有重新定位任何前缀,可以在命令行上跳过它们
然而,它接着说,在构建可重定位RPM时可能会出现一些问题(即使您看到前缀标记)。如果您只想从RPM中提取文件,则有相应的工具(例如,或unrpm
)
进一步阅读:
-
可重新定位的包是一个在各个方面都是标准的包,只保留一个。区别在于前缀标记。将此标记添加到规范文件时,RPM将尝试构建可重新定位的包
注意“尝试”一词。在成功构建可迁移包之前,必须满足一些条件,本章将介绍所有这些条件。但首先,让我们看看RPM如何准确地重新定位包。包重新定位的核心部分是前缀标记
您只需要提取一些文件吗?您只需要提取一些文件吗?谢谢您的回答。它真的很有用。最后,我能够使用sudorpm重新定位--install--relocate=感谢您的回答。它真的很有用。最后,我能够使用sudoRPM重新定位--安装--重新定位=