繁体   English   中英

如何在 linux 中获取 RPM 的 header 大小和其他 RPM 元数据

[英]How to get an RPM's header size and other RPM metadata in linux

是否有 linux 命令来获取 RPM 的 header 的大小? 我遇到了这篇描述 RPM https://docs.fedoraproject.org/ro/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch-package-structure.html的结构的文章我看到 RPM 元数据中有不同的标签我们可以使用 C、Perl 或 Python 等语言来阅读它们。 如果没有 linux 命令可以做到这一点,如何使用上面文章中提到的 Perl 来做到这一点?

谢谢!

您可以尝试 Perl 模块RPM::Header::PurePerl 虽然它最后一次更新是在 2006 年,但它可能无法与较新的 RPM 文件一起正常工作。 例如:

use feature qw(say);
use strict;
use warnings;
use RPM::Header::PurePerl;

tie my %hdr, "RPM::Header::PurePerl", "sample.rpm" or die "Failed to open rpm file";

say "The following keys can be accessed: ";
say join ",", sort keys %hdr;
say "----------";
say "Example: Version = ", $hdr{VERSION};

Output

Unknown 2680, 7
Unknown 2730, 6
Unknown 10020, 7
Unknown 10080, 7
Unknown 5011, 4
Unknown 5062, 6
Unknown 5092, 8
Unknown 5093, 4
The following keys can be accessed: 
ARCH,BASENAMES,BUILDHOST,BUILDTIME,CHANGELOGNAME,CHANGELOGTEXT,CHANGELOGTIME,COPYRIGHT,Classdict,DESCRIPTION,DESCRIPTIONLANGS,DIRINDEXES,DIRNAMES,DISTRIBUTION,Dependsdict,FILEDEVICES,FILEFLAGS,FILEGROUPNAME,FILEINODES,FILELANGS,FILELINKTOS,FILEMD5S,FILEMODES,FILEMTIMES,FILERDEVS,FILESIZES,FILEUSERNAME,FILEVERIFYFLAGS,Fileclass,Filedependsn,Filedependsx,GROUP,LEAD_ARCHNUM,LEAD_MAGIC,LEAD_MAJOR,LEAD_MINOR,LEAD_NAME,LEAD_OSNUM,LEAD_RESERVED,LEAD_SIGNATURETYPE,LEAD_TYPE,LICENSE,NAME,OPTFLAGS,OS,PACKAGER,PACKAGE_OFFSET,PAYLOADCOMPRESSOR,PAYLOADFLAGS,PAYLOADFORMAT,PLATFORM,PROVIDEFLAGS,PROVIDENAME,PROVIDES,PROVIDEVERSION,RELEASE,REQUIREFLAGS,REQUIRENAME,REQUIREVERSION,RPMVERSION,SHA1HEADER,SIGMD5,SIGSIZE,SIZE,SOURCERPM,SUMMARY,Sourcepkgid,UNKNOWN1,UNKNOWN2,UNKNOWN4,URL,VENDOR,VERSION
----------
Example: Version = 1.4

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM