我需要从包含大量.jar文件的RPM软件包中提取文件夹。我的想法是,是否有可能将其作为流的类路径传递给java -cp命令?
我正在从事的项目构建了10多个大型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/\*
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句