在Linux系统中,软件安装方式因发行版和包管理器的不同而存在差异,查看已安装软件的方法也因此多样化,无论是基于Debian/Ubuntu的APT系列、RedHat/CentOS的YUM/DNF系列,还是Arch Linux的Pacman系列,亦或是第三方包管理器如Snap、Flatpak,均有对应的查询命令,本文将详细介绍不同场景下查看已安装软件的方法,并辅以示例和表格对比,帮助用户快速定位所需信息。
基于Debian/Ubuntu的APT系列查询方法
Debian及其衍生版(如Ubuntu)使用APT(Advanced Packaging Tool)作为包管理器,通过apt
命令结合dpkg
(底层包管理工具)可全面查询已安装软件信息。
apt list --installed
:列出所有已安装软件
该命令会输出系统中所有已安装软件的列表,包含包名、版本、架构、描述及来源仓库。
用法:
apt list --installed
示例输出:
libnginx-mod-http-geoip2/1.18.0-0ubuntu1 amd64 [installed,local] nginx/1.18.0-0ubuntu1 amd64 [installed,local] python3-pip/20.0.2-5ubuntu1.10 all [installed,official]
技巧:结合grep
可快速筛选特定软件,如apt list --installed | grep nginx
仅显示与nginx相关的包。
apt search
:搜索可用软件(含已安装和未安装)
若需查询某软件是否已安装或是否存在可用版本,可使用apt search
。
用法:
apt search 关键词
示例输出:
python3-pip/focal-updates,focal-security 20.0.2-5ubuntu1.10 all Python package installer python3.8-pip/focal-updates 20.0.2-5ubuntu1.10 amd64 Python package installer for Python 3.8
输出中[installed]
标记表示已安装,无标记则表示未安装。
dpkg -l
:列出所有已安装包(含未配置完成的包)
dpkg
是APT的底层工具,dpkg -l
会显示所有已安装包的状态,包括未正确配置的包。
用法:
dpkg -l
状态列说明:
ii
:已安装并正确配置(Installed and configured)rc
:已卸载但配置文件保留(Removed but config files kept)
示例输出:ii libnginx-mod-http-geoip2 1.18.0-0ubuntu1 amd64 nginx module for GeoIP2 database lookups ii nginx 1.18.0-0ubuntu1 amd64 high performance web server
APT系列常用查询命令对比
命令 | 用途 | 示例 |
---|---|---|
apt list --installed |
列出所有已安装软件 | apt list --installed |
apt search |
搜索软件(含安装状态) | apt search nginx |
dpkg -l |
列出所有已安装包(含状态) | dpkg -l | grep nginx |
基于RedHat/CentOS的YUM/DNF系列查询方法
RedHat、CentOS及Fedora使用RPM包管理系统,其中CentOS 7及以下版本用yum
,CentOS 8+、Fedora等用dnf
(yum的下一代替代品),二者命令语法基本一致。
yum list installed
(CentOS 7及以下)
列出所有已安装的RPM包,包含包名、版本、仓库来源。
用法:
yum list installed
示例输出:
nginx.x86_64 1.18.0-1.el7.ngx @nginx-stable python3-pip.noarch 9.0.3-7.el7 @base
后缀表示安装来源(如@nginx-stable
为第三方仓库,@base
为基础仓库)。
dnf list installed
(CentOS 8+、Fedora)
功能与yum list installed
相同,但依赖更高效的libsolv库。
用法:
dnf list installed
示例输出:
nginx-1:1.18.0-1.el8.ngx.x86_64 @nginx-stable python3-pip-20.2.4-1.el8.noarch @appstream
yum search
/dnf search
:搜索软件
搜索包含关键词的软件包,显示可用版本及仓库信息。
用法:
yum search 关键词 # 或 dnf search 关键词
示例输出:
nginx.x86_64 : High performance web server and reverse proxy server nginx-all-modules.x86_64 : Metapackage for all Nginx modules
rpm -qa
:列出所有已安装RPM包
rpm
是RPM系统的底层工具,rpm -qa
(query all)输出所有已安装包的完整名称(包名-版本-发布.架构)。
用法:
rpm -qa | sort # 排序后输出
示例输出:
nginx-1.18.0-1.el7.ngx.x86_64 python3-pip-9.0.3-7.el7.noarch
YUM/DNF系列常用查询命令对比
命令 | 用途 | 示例 |
---|---|---|
yum list installed |
列出已安装RPM包(CentOS 7-) | yum list installed |
dnf list installed |
列出已安装RPM包(CentOS 8+) | dnf list installed |
yum search /dnf search |
搜索软件包 | dnf search nginx |
rpm -qa |
列出所有已安装包(完整名称) | rpm -qa | grep nginx |
基于Arch Linux的Pacman系列查询方法
Arch Linux使用Pacman作为包管理器,其设计简洁高效,查询命令也更为直观。
pacman -Q
:列出所有已安装包
pacman -Q
(query)输出已安装包的名称和版本,格式为“包名 版本”。
用法:
pacman -Q
示例输出:
nginx 1.20.1-1 python-pip 20.3.1-1
pacman -Qs
:搜索已安装包
在已安装包中搜索包含关键词的包,显示包名、版本及描述。
用法:
pacman -Qs 关键词
示例输出:
local/nginx 1.20.1-1 [installed] HTTP server and reverse proxy local/python-pip 20.3.1-1 [installed] A tool to install Python packages
pacman -Qi
:查看包详细信息
若需获取某包的详细信息(如依赖、大小、安装时间等),使用pacman -Qi
(query info)。
用法:
pacman -Qi 包名
示例输出:
Name : nginx Version : 1.20.1-1 Description : HTTP server and reverse proxy Architecture : x86_64 URL : http://nginx.org Licenses : BSD Groups : None Provides : None Depends On : glibc libpcre openssl zlib Required By : None Optional Deps : None Conf Files : /etc/nginx/*
Pacman系列常用查询命令对比
命令 | 用途 | 示例 |
---|---|---|
pacman -Q |
列出所有已安装包 | pacman -Q |
pacman -Qs |
搜索已安装包 | pacman -Qs nginx |
pacman -Qi |
查看包详细信息 | pacman -Qi nginx |
通用查询方法(跨发行版)
若需在不依赖特定发行版包管理器的情况下查询软件,可通过底层工具或文件路径定位。
dpkg -S
(Debian/Ubuntu):查找文件所属包
通过文件路径反向查询该文件属于哪个已安装包,适用于忘记包名但知道文件路径的情况。
用法:
dpkg -S 文件路径
示例:
dpkg -S /usr/bin/python3 # 输出:python3-minimal: /usr/bin/python3
rpm -qf
(RedHat/CentOS/Fedora):查找文件所属包
与dpkg -S
类似,用于RPM系统中查询文件所属包。
用法:
rpm -qf 文件路径
示例:
rpm -qf /usr/bin/python3 # 输出:python3-3.6.8-18.el8.x86_64
查看软件安装目录
Linux软件通常安装到以下目录,可通过查看目录内容判断已安装软件:
/usr/bin
、/usr/local/bin
:可执行文件(用户安装软件常在/usr/local/bin
)/usr/lib
、/usr/local/lib
:库文件/opt
:部分商业软件或大型软件(如IDE、浏览器)的安装目录
示例:ls /usr/local/bin | grep mysql # 查看用户安装的MySQL相关可执行文件
第三方包管理器查询方法
除发行版自带包管理器外,Snap、Flatpak等第三方工具也广泛使用,需通过对应命令查询。
Snap:snap list
Snap是Canonical开发的跨发行版包管理器,软件安装为独立“快照”。
用法:
snap list
示例输出:
Name Version Rev Tracking Publisher Notes core 16-2.53 13700 latest/stable canonical✓ base nginx 1.21.0-1/1.21 136 latest/stable nginx✓ -
Publisher
列的表示官方维护的Snap包。
Flatpak:flatpak list
Flatpak是另一个跨发行版工具,支持用户级和系统级安装。
用法:
flatpak list --user # 查看用户安装的Flatpak应用 flatpak list --system # 查看系统安装的Flatpak应用
示例输出:
Ref Options org.mozilla.firefox stable org.libreoffice.LibreOffice stable
图形化工具查询
对于不习惯命令行的用户,可通过图形化工具查询已安装软件:
- Ubuntu:软件中心(Ubuntu Software),支持搜索、查看已安装软件及卸载。
- CentOS:Add/Remove Software(yumex图形前端),需安装
yumex
包后使用。 - Arch:Octopi(Pacman图形前端),需安装
octopi
包后使用。
Linux查看已安装软件的方法需结合包管理器和发行版选择:
- Debian/Ubuntu:优先用
apt list --installed
或dpkg -l
,结合apt search
搜索。 - RedHat/CentOS:用
yum list installed
/dnf list installed
或rpm -qa
,yum search
/dnf search
搜索。 - Arch:用
pacman -Q
或pacman -Qs
,pacman -Qi
查看详情。 - 通用方法:
dpkg -S
/rpm -qf
反向查找文件所属包,或查看/usr/bin
、/opt
等目录。 - 第三方工具:Snap用
snap list
,Flatpak用flatpak list
。
根据实际场景选择合适命令,可快速定位已安装软件信息。
相关问答FAQs
Q1:如何查看某个已安装软件的详细信息(如版本、依赖、安装时间)?
A:根据包管理器选择对应命令:
- APT(Debian/Ubuntu):
apt show 包名
(显示仓库信息)或dpkg -l 包名
(显示安装状态)。
示例:apt show nginx
- YUM/DNF(RedHat/CentOS):
yum info 包名
或dnf info 包名
。
示例:dnf info nginx
- Pacman(Arch):
pacman -Qi 包名
。
示例:pacman -Qi nginx
- Snap:
snap info 包名
。
示例:snap info nginx
- Flatpak:
flatpak info 包名
。
示例:flatpak info org.mozilla.firefox
Q2:如何区分系统自带的软件和用户手动安装的软件?
A:可通过安装来源、路径及包管理器标记区分:
- APT/YUM/DNF:
- 系统自带软件通常来自
base
、updates
等官方基础仓库,用户安装的可能来自第三方仓库(如epel
、nginx-stable
)或本地编译安装。 - 示例:
apt list --installed | grep "base"
筛选基础仓库软件。
- 系统自带软件通常来自
- dpkg/rpm:
- 查看安装时间:
rpm -qa --last | head -n 10
(RPM系统显示最近安装的包);ls -la /var/lib/dpkg/info/
(Debian/Ubuntu查看包信息文件时间)。
- 查看安装时间:
- 路径区分:
- 系统自带软件通常在
/usr/bin
,用户手动编译安装的软件可能在/usr/local/bin
或/opt
。 - 示例:
which nginx
若输出/usr/sbin/nginx
多为系统自带,/usr/local/nginx/sbin/nginx
则为用户安装。
- 系统自带软件通常在
- Snap/Flatpak:
- 用户安装的Flatpak应用可通过
flatpak list --user
查看,系统级通过--system
查看;Snap默认均为系统级,但可通过snap install --user
安装到用户目录。
- 用户安装的Flatpak应用可通过
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/15930.html