linux无统一查已安装软件包命令,须先运行dpkg、rpm、pacman或zypper --version确认实际包管理器,再选用对应命令:debian/ubuntu用dpkg -s或apt list --installed | grep -i,rhel系用rpm -q或dnf list installed | grep -i,arch用pacman -q,opensuse用zypper search --installed-only;非包管理安装需查snap、flatpak、pip或源码路径。

直接查包管理器最准,别只看命令能不能运行。Linux 没有统一命令,得先知道系统用什么包管理器,再选对应方法。
先确认你的系统类型和包管理器
别靠 /etc/os-release 猜——有些系统预装多个包管理器,但只启用一个。现场运行命令看哪个有响应:
- dpkg --version 有输出 → Debian/Ubuntu 系,用 apt 或 dpkg
- rpm --version 有输出 → RHEL/CentOS/Fedora/openSUSE,用 rpm 或 dnf/yum
- pacman --version 有输出 → Arch/Manjaro,用 pacman
- zypper --version 有输出 → openSUSE,用 zypper search --installed-only
按发行版查具体软件是否安装
查单个软件,不建议扫全量列表(动辄上千行),推荐带 -i 的 grep 过滤,避免大小写漏判(比如 nginx vs Nginx):
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
Debian/Ubuntu:dpkg -s nginx(精确查状态,已安装会显示 Status: install ok installed)
或 apt list --installed | grep -i nginx -
RHEL/CentOS/Fedora:rpm -q httpd(已安装直接输出包名如 httpd-2.4.57-1.el9)
或 dnf list installed | grep -i httpd -
Arch/Manjaro:pacman -Q vim(精确匹配包名)
或 pacman -Qs vim(模糊搜包名+描述,大小写敏感)
查不到?可能是非包管理器安装的
如果上述命令全无输出,但 which curl 或 command -v python3 能定位到二进制,说明它大概率不是通过系统包管理器装的:
- snap 安装:用 snap list | grep vlc
- flatpak 安装:用 flatpak list | grep firefox
- pip --user 安装:用 pip list | grep requests(注意:不显示系统级 pip 包)
- 源码编译(./configure && make && sudo make install):通常装在 /usr/local/bin,可用 find /usr/local -name 'nginx' 2>/dev/null 查找
快速验证命令是否存在(辅助判断,不等于“已安装软件包”)
which 和 command -v 只能告诉你可执行文件在哪,不能说明它是怎么装的:
- command -v git → 输出 /usr/bin/git,说明命令可用
- 再用 dpkg -S /usr/bin/git(Debian)或 rpm -qf /usr/bin/git(RHEL)反查归属包
- 如果反查失败,基本就是非包管理方式部署的










