【问题标题】:How To make relocatable rpm?如何制作可重定位的rpm?
【发布时间】:2016-03-30 06:27:51
【问题描述】:

我有带有 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 是可重定位的。但是如果运行安装命令

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

它会给出错误消息:

错误:包 java-hbase-processor 不可重定位

提前致谢。

【问题讨论】:

  • 您只需要提取一些文件吗?

标签: java maven rpm


【解决方案1】:

根据RPM.org

默认情况下,RPM 会在规范文件中列出的前缀目录中安装一个可重定位的包。您可以在 RPM 安装命令行上使用 "--prefix <dir>" 覆盖它。例如,如果有问题的包要安装在“/opt”中,但那里没有足够的磁盘空间(而且它是一个可重定位的包),你可以安装它 "--prefix /usr /opt".

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

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

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

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

进一步阅读:

【讨论】:

  • 感谢您的回答。它真的很有用。最后我能够使用 sudo rpm --install --relocate = 重新定位
猜你喜欢
  • 1970-01-01
  • 2019-05-13
  • 1970-01-01
  • 2019-10-11
  • 1970-01-01
  • 2014-10-05
  • 1970-01-01
  • 2014-01-08
  • 1970-01-01
相关资源
最近更新 更多