[英]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.