Rpm
使用 RPM 中的目錄作為不同工具的參數
我需要從包含多個**.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/\*