简体   繁体   English

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

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

Is there a linux command to get the size of header of an RPM?是否有 linux 命令来获取 RPM 的 header 的大小? I came across this article that describes the structure of an RPM https://docs.fedoraproject.org/ro/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch-package-structure.html I see there are different tags in RPM metadata and that we can use some languages like C, Perl or Python to read them.我遇到了这篇描述 RPM https://docs.fedoraproject.org/ro/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch-package-structure.html的结构的文章我看到 RPM 元数据中有不同的标签我们可以使用 C、Perl 或 Python 等语言来阅读它们。 If there is no linux command to do it, how to do it using Perl as mentioned in the article above?如果没有 linux 命令可以做到这一点,如何使用上面文章中提到的 Perl 来做到这一点?

Thanks!谢谢!

You could try the Perl module RPM::Header::PurePerl .您可以尝试 Perl 模块RPM::Header::PurePerl Though it was last updated in 2006, so it may not work properly with newer RPM files.虽然它最后一次更新是在 2006 年,但它可能无法与较新的 RPM 文件一起正常工作。 For example:例如:

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 : 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