簡體   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