我正在寻找一种可靠的方法来查找我的 OpenSUSE Leap 15.3 系统上安装了多少个软件包。我试过:
# number of available packages in the repos
vm-admin:~ # zypper se -s | wc -l
55800
# number of installed packages from the repos
vm-admin:~ # zypper se -si | wc -l
1490
# number of installed packages?
vm-admin:~ # rpm -qa | wc -l
1091
# number of available packages?
vm-admin:~ # pkcon get-packages | grep Available | wc -l
51058
# number of installed packages?
vm-admin:~ # pkcon get-packages | grep Installed | wc -l
1086
这些命令之间有什么区别?
答案1
总而言之,zypper 比 rpm 更冗长。我在我的一台虚拟机上用一个例子来展示一下两者的区别:
ses7-host1:~ # zypper se -si ceph-common
Loading repository data...
Reading installed packages...
S | Name | Type | Version | Arch | Repository
---+---------------------+---------+--------------------------------+--------+-------------------------------------------------
i+ | ceph-common | package | 15.2.14.84+gb6e5642e260-3.31.1 | x86_64 | SLE-Module-Basesystem15-SP2-Updates for x86_64
i+ | ceph-common | package | 15.2.14.84+gb6e5642e260-3.31.1 | x86_64 | SUSE-Enterprise-Storage-7-Updates for x86_64 SP2
i | python3-ceph-common | package | 15.2.14.84+gb6e5642e260-3.31.1 | x86_64 | SLE-Module-Basesystem15-SP2-Updates for x86_64
i | python3-ceph-common | package | 15.2.14.84+gb6e5642e260-3.31.1 | x86_64 | SUSE-Enterprise-Storage-7-Updates for x86_64 SP2
该软件包ceph-common
可从两个不同的存储库获得,但由于版本完全相同,因此被列为已安装。但rpm
当然只能安装一个软件包:
ses7-host1:~ # rpm -qa | grep ceph-common
ceph-common-15.2.14.84+gb6e5642e260-3.31.1.x86_64
python3-ceph-common-15.2.14.84+gb6e5642e260-3.31.1.x86_64
那么你也应该注意到,zypper se -si
你看到的不仅仅是已安装的软件包,还有模式、补丁和模式,如果你想自己编译软件包,甚至可能还有源代码。 的输出rpm -qa
是 的子集zypper se -si
。