没有统一命令,需先用dpkg --version、rpm --version、pacman --version或zypper --version判断实际包管理器;debian/ubuntu用apt list --installed(带源信息)或dpkg -l(更全,含rc状态);rhel/centos/fedora用rpm -qa(直接读数据库,最可靠);arch用pacman -qe(仅手动安装包);snap/flatpak/pip/npm等需用各自list命令单独查询。

怎么快速判断自己用的是哪个包管理器
别猜发行版名称,直接试命令看哪个有输出:dpkg --version、rpm --version、pacman --version、zypper --version。有输出的那个,就是你系统当前实际在用的底层包管理器。
注意:which apt 或 cat /etc/os-release 可能误导——有些系统预装多个工具但只启用一个;command -v dnf 比 which yum 更可靠,因为后者在 RHEL 8+ 上可能只是个空壳 alias。
Debian/Ubuntu 该用 apt list --installed 还是 dpkg -l
apt list --installed 显示的是 APT 认为“当前已安装”的包,带源信息和版本,适合日常排查;dpkg -l 直读底层数据库,连 rc(已卸载但留配置)状态的包都列出来,更全但更杂。
- 查 nginx 是否真装了且可运行:
dpkg -l | grep '^ii' | grep nginx比apt list --installed | grep nginx更准,因为后者漏掉手动dpkg -i安装的 .deb 包 - 只想看自己主动装的(非依赖):
apt list --installed --manual-installed(Ubuntu 20.04+/Debian 11+ 支持),dpkg没这功能 - 查某个二进制属于哪个包:
dpkg -S /usr/bin/python3,路径必须写全,不能只写python3
RHEL/CentOS/Fedora 为什么 rpm -qa 比 dnf list installed 更可靠
rpm -qa 是直接读 RPM 数据库,不管包是 dnf install 装的、rpm -ivh 手动装的,还是系统预装的,一律列出;dnf list installed 只显示 DNF 自己记录在案的包,遇到签名异常、repo 不匹配或旧版 rpm 强制安装的包,就可能不出现。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 查 docker 版本和安装时间:
rpm -qi docker-ce,dnf没等价字段 - 按安装时间倒序看最近装了啥:
rpm -qa --last | head -20 - 查
/etc/nginx/nginx.conf属于哪个包:rpm -qf /etc/nginx/nginx.conf,路径不存在会报错,得先确认文件存在
别忘了 snap、flatpak、pip、npm 这些“包外世界”
所有上面的命令都只管系统级包管理器——sudo snap install code、flatpak install flathub org.mozilla.firefox、pip install --user requests、npm install -g eslint 安装的东西,完全不会出现在 apt、rpm 或 pacman 的结果里。
对应查法分别是:snap list、flatpak list、pip list(加 --user 查用户级)、npm list -g。如果 which node 能找到但 rpm -qf 报 “file not owned”,八成就是 npm 全局装的。
最常被忽略的点:同一个程序可能有多个来源——比如系统自带的 python3(来自 rpm 或 apt),用户又用 pyenv 装了个新版,再用 pip install --user 装了包。查“已安装”之前,得先想清楚你问的是哪个层面。










