Rpm

使用 RPM 中的目錄作為不同工具的參數

  • October 10, 2017

我需要從包含多個**.jar文件的****RPM包中獲取一個文件夾。我的想法是,也許可以將它以流的形式傳遞給java -cp**命令作為它的類路徑?

我正在處理的項目建構了 10 多個大 RPM,對於每個大 RPM,我需要針對它執行一個特定的程序,該程序需要駐留在 RPM 中的應用程序的類路徑。

我偶然發現了一個名為rpm2cpio的工具,它可以通過管道傳輸到cpio命令。但是現在我的知識越來越少了。我不確定是否可以不將 cpio 包的內容提取到磁碟,而是使用其中的文件流,過濾掉某個文件夾並將其用作另一個命令的參數?

為什麼我什至嘗試這樣做只是因為在磁碟上提取整個內容將是一個 IO 繁重的操作,如果可能的話,我很樂意避免。

rpm -qlp package.rpm

將列出其中包含的文件package.rpm而不將其全部提取,並且即使在大型 RPM 上也應該足夠快。使用該文件列表,您應該能夠建構您所追求的類路徑。

要從 RPM 中提取特定目錄及其所有內容,您需要創建目錄,然後使用cpio從 RPM 中提取相關文件:

cd /tmp
mkdir ./the/requested/directory
rpm2cpio /path/to/the/package.rpm | cpio -i ./the/requested/directory/\*

引用自:https://unix.stackexchange.com/questions/397210