[英]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中提取文件,则可以使用一些工具(例如rpmunpack
, rpm2cpio
或unrpm
)。
进一步阅读:
可重定位软件包是在所有方面都是标准的软件包,请保存其中一个。 区别在于前缀标记。 当将此标签添加到规格文件时,RPM将尝试构建可重定位的程序包。
请注意单词“尝试”。 要成功构建可重定位的软件包,必须满足一些条件,本章将介绍所有这些条件。 但是首先,让我们看一下RPM如何重新定位软件包。 软件包重定位的核心要素之一就是前缀标记。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.