perl – 如何获取系统中安装的rpm包列表
发布时间:2020-12-15 23:26:47 所属栏目:大数据 来源:网络整理
导读:如何使用Perl获取 Linux上安装的所有rpm包的列表.任何帮助表示赞赏. 解决方法 我猜你总是可以使用rpm命令: $rpm --query --all --qf "%-30{NAME} - %{VERSION}n" 然后,您可以通过各种方式使用它: use autodie;open my $RPM_FH,"-|",qq(rpm --query --all
如何使用Perl获取
Linux上安装的所有rpm包的列表.任何帮助表示赞赏.
解决方法
我猜你总是可以使用rpm命令:
$rpm --query --all --qf "%-30{NAME} - %{VERSION}n" 然后,您可以通过各种方式使用它: use autodie; open my $RPM_FH,"-|",qq(rpm --query --all --qf "%-30{NAME} - %{VERSION}n"); my @rpmLines = <$RPM_FH>; close $RPM_FH; 要么: my @rpmLines = qx(rpm --query --all --qf "%-30{NAME} - %{VERSION}n"); 我还发现RPM::Database这将是一种更加Perlish的做事方式.此包将RPM数据库绑定到哈希: use RPM::Database; tie %RPM,"RPM::Database" or die "$RPM::err"; for (sort keys %RPM) { ... } 我从未使用它,所以我不确定它是如何工作的.例如,我假设每个哈希条目的值是某种数据库对象.例如,我认为知道RPM包中的版本号和文件是很重要的,必须有一些信息可以拉,但我没有在RPM :: Database或RPM::HEader中看到任何内容.玩弄它.您可以使用Data::Dumper来帮助探索返回的对象. 警告:使用Data :: Dumper来帮助探索对象和类中的信息.不要用它来弄清楚如何直接从对象中提取信息.使用正确的方法和类. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |