如何獲取Linux上使用Perl安裝的所有rpm包的列表。任何幫助表示讚賞。如何獲取系統中安裝的rpm包列表
4
A
回答
7
我想你可以隨時使用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
來幫助探索對象和類中的信息。不要用它來弄清楚如何直接從對象中獲取信息。使用正確的方法和類。
4
最簡單的方法可能是甩出rpm
程序。
chomp(my @rpms = `rpm -qa`);
1
取決於如何解釋你的問題,正確的答案可以是:
rpm -qR perl
相關問題
- 1. Java - 如何獲得已安裝的RPM軟件包列表
- 2. 如何從安裝的RPM獲取許可證列表?
- 3. 爲(非系統)Python安裝rpm模塊
- 4. 如何在基於rpm的系統安裝新的
- 5. 如何獲取使用python安裝在系統中的瀏覽器列表?
- 6. 如何防止在RedHat系統上安裝SUSE RPM
- 7. rpm包的安裝部分
- 8. 如何重新安裝rpm包?
- 9. 如何在安裝rpm包後找到rpm前綴
- 10. 獲取系統中安裝的所有SQL服務器的列表
- 11. 如何在基於Debian的系統中構建RPM軟件包?
- 12. 蟒蛇,其中在系統安裝包
- 13. 在Win32系統中安裝R包「CATBOOST」
- 14. 。安卓系統上的安裝包安裝失敗
- 15. rpm規範只根據系統標準安裝某些文件
- 16. RPM軟件包的測試安裝
- 17. 包衝突的錯誤,而安裝RPM
- 18. 從rpm安裝
- 19. 通過安裝自制rpm包失敗的依賴關係
- 20. 如何獲取系統中的Web瀏覽器列表
- 21. 如何獲取系統中的方面列表
- 22. 如何獲取iOS中可用系統聲音的列表?
- 23. 如何將系統軟件包安裝到oracle中?
- 24. 如何獲取Android Studio中已安裝/未安裝的依賴項的列表
- 25. 在系統中獲取已安裝的應用程序
- 26. FPM:如何在安裝後shell腳本中獲取rpm中存在的文件列表
- 27. 如何將Python打包爲RPM以便安裝到/ opt中?
- 28. 無法安裝廚師管理rpm包
- 29. 創建和安裝RPM軟件包
- 30. 使用廚師安裝rpm包
+1打我吧... – gsiems