linux无统一查已安装软件包命令,须先运行dpkg --version、rpm --version等确认包管理器类型,再选用apt list --installed、rpm -qa、pacman -q等对应命令;若查不到,可能是snap、flatpak、pip或源码编译安装。

Linux 没有统一命令能直接列出所有已安装软件,关键在于先确认系统用的是哪种包管理器,再用对应命令——用错工具,结果为空或报错是常态。
第一步:确认你的包管理器类型
别猜发行版,直接运行以下命令,看哪个有输出:
- `dpkg --version` 有输出 → Debian/Ubuntu 系(如 Ubuntu 24.04、Linux Mint)
- `rpm --version` 有输出 → RHEL/CentOS/Fedora/openSUSE
- `pacman --version` 有输出 → Arch/Manjaro
- `zypper --version` 有输出 → openSUSE(优先于 rpm 判断)
- `apk --version` 有输出 → Alpine Linux
第二步:按包管理器查已安装包
确认类型后,选对应命令,推荐带过滤的实用写法:
-
Debian/Ubuntu:
apt list --installed | grep -i nginx(推荐,含源信息);或dpkg -l | grep '^ii' | grep -i nginx(更底层,状态明确) -
RHEL/CentOS/Fedora(RHEL 8+/Fedora):
dnf list installed | grep -i httpd;若需最全结果(含手动 rpm 安装),用rpm -qa | grep -i httpd -
RHEL/CentOS 7:
yum list installed | grep -i docker -
Arch/Manjaro:
pacman -Q | grep -i vim(查所有);pacman -Qe | grep -i git(只查用户手动装的) -
openSUSE:
zypper search --installed-only | grep -i firefox -
Alpine:
apk info | grep -i curl
第三步:查不到?可能是非包管理器安装的
如果上述命令都无结果,但 which python3 或 command -v node 能定位到程序,说明它不是系统包管理器装的:
-
Snap 安装:
snap list | grep -i code -
Flatpak 安装:
flatpak list | grep -i firefox -
Pip 用户级安装:
pip list | grep -i requests(注意:--user安装不进系统列表) -
源码编译安装:通常在
/usr/local/,用find /usr/local -name "*nginx*" 2>/dev/null或查安装日志
第四步:查某个包装了哪些文件
确认包名存在后,可进一步查看它释放的具体路径:
-
Debian/Ubuntu:
dpkg -L nginx -
RHEL/Fedora:
rpm -ql httpd -
Arch:
pacman -Ql vim











