我有一个 OpenSUSE 虚拟机,想要列出已安装的应用程序。
我知道我可以执行 RPM cmd,并且 ls {PATH//: /} 似乎返回一个很长的列表,尽管它充满了非应用程序库和废话。
尝试
RPM -l;
ls {PATH//: /};
for d in ${PATH//:/ }/ ; do
for f in $d/* ; do
test -x $f && test -f $f && echo $f
done
done
我注意到 YAST GUI 准确地展示了我想要的内容 - 按类别和其他元数据(例如大小和位置)的应用程序。
我如何通过命令行获取这些数据,以便我可以以编程方式查询它?
我已经尝试过了YAST -l
,它列出了模块,但没有列出应用程序。我看不到任何其他相关选项。
答案1
zypper
您可以使用se
搜索命令查询软件存储库
zypper se <app name>
或使用 info 命令
zypper info <app name>
您可以使用参数请求 XML 格式的输出--xmlout
。
我建议您阅读zypper 上的 OpenSuSE 文档
取自上面链接的一些示例:
# zypper se sqlite
Reading installed packages...
S | Name | Summary | Type
--+--------------------------+----------------------------------------------------------------+--------
| libapr-util1-dbd-sqlite3 | DBD driver for SQLite 3 | package
i | libgda-3_0-sqlite | Sqlite Provider for GNU Data Access (GDA) | package
| libqt4-sql-sqlite | Qt 4 sqlite plugin | package
i | libsqlite3-0 | Shared libraries for the Embeddable SQL Database Engine | package
| libsqlite3-0-32bit | Shared libraries for the Embeddable SQL Database Engine | package
| mediatomb-sqlite | UPnP AV MediaServer | package
i | mono-data-sqlite | Database connectivity for Mono | package
| pdns-backend-sqlite2 | SQLite 2 backend for pdns | package
--------------
# zypper info amarok
Reading installed packages...
Information for package amarok:
Repository: Packman 11.1
Name: amarok
Version: 1.4.9.1-103.pm.1
Arch: x86_64
Vendor: packman.links2linux.de
Installed: Yes
Status: up-to-date
Installed Size: 12.1 M
Summary: Media Player for KDE
Description:
Amarok is a media player for all kinds of media, supported by aRts, GStreamer
or Xine (depending on the packages you install). This includes MP3, Ogg
Vorbis, audio CDs and streams.
It also supports audio effects of all kinds that are provided by aRts.
Playlists can be stored in .m3u or .pls files.
答案2
我注意到 YAST GUI 准确地展示了我想要的内容 - 按类别和其他元数据(例如大小和位置)的应用程序。
以 root 身份在命令行中使用 YaST。您可以在软件管理中选择使用您想要的过滤器,例如 RPM 组:
在 Extras 中,您可以“将包列表导出到文件”,将创建一个 xml 文件