我们最近发表了一篇关于批量安装包的文章。同时,我也做了一些研究,找到了如何获取系统上安装的包的信息。我会在我们的网站上分享这些方法,希望能帮助到其他人。检查软件包是否安装的方法有很多,我找到了7个命令,您可以从中选择您喜欢使用的命令。如下:apt-cache:可用于查询APT缓存或包的元数据。apt:是一个强大的工具,用于在基于Debian的系统中安装、下载、删除、搜索和管理软件包。dpkg-query:查询dpkg数据库的工具。dpkg:基于Debian系统的包管理工具。which:返回在终端中输入命令时执行的可执行文件的完整路径。whereis:可用于搜索指定命令的二进制文件、源代码文件和帮助文件。locate:比find命令快,因为它使用updatedb数据库搜索,而find命令在实际系统中搜索。方法一、使用apt-cache命令。apt-cache命令用于从APT内部数据库查询APT缓存和包元数据。它会搜索并显示指定包的信息,包括是否安装、包版本、源代码仓库信息等。下面的例子可以清楚的看出系统已经安装了nano包,以及对应安装的版本号。#apt-cachepolicynanonano:Installed:2.9.3-2Candidate:2.9.3-2Versiontable:***2.9.3-2500500http://in.archive.ubuntu.com/ubuntubionic/mainamd64Packages100/var/lib/dpkg/status方法二、使用apt命令apt是一个强大的命令行工具,可以用来安装、下载、删除、搜索、管理包和查询包信息,类似于Low-级别访问libapt-pkg库的所有功能。它包含一些很少使用的与包管理相关的命令行功能。#apt-qqlistnanonano/bionic,now2.9.3-2amd64[installed]方法三、使用dpkg-query命令dpkg-query是一个显示dpkg数据库中包信息列表的工具。下例输出的第***ii列表示查询的包已经安装。#dpkg-query--list|grep-inanoiinano2.9.3-2amd64小巧、友好的文本编辑器,灵感来自PicoMethod4.使用dpkg命令管理系统,它不能自动下载和安装包或包依赖项。下例输出的第***ii列表示查询的包已经安装。#dpkg-l|grep-inanoiinano2.9.3-2amd64小巧、友好的文本编辑器,灵感来自Pico方法5.使用which命令which命令返回在终端中输入命令时执行的可执行文件的完整路径。当您要创建桌面快捷方式或可执行文件的符号链接时,这很有用。which命令只在当前用户的PATH环境变量配置的目录列表中搜索,而不是在用户的所有目录中搜索。这意味着当您登录到您自己的帐户时,它不会搜索根用户文件或目录。如果指定的包或可执行文件路径有如下输出,则表示已安装,否则未安装。#whichnano/bin/nano方法六、使用whereis命令whereis命令用于查找指定命令对应的程序二进制文件、源代码文件、帮助文件。如果指定的包或可执行文件路径有如下输出,则表示已安装,否则未安装。#whereisnanonano:/bin/nano/usr/share/nano/usr/share/man/man1/nano.1.gz/usr/share/info/nano.info.gz方法七、使用locate命令locate命令比find命令更快,因为它在updatedb数据库中搜索,而find命令在实际系统中搜索。为了获取指定的文件,它使用数据库而不是在特定的目录路径中搜索。locate命令并未预装在大多数系统上,需要手动安装。locate使用的数据库会根据计划任务定期更新。当然我们也可以手动更新。如果指定的包或可执行文件路径有如下输出,则表示已安装,否则未安装。#定位--basename'\nano'/usr/bin/nano/usr/share/nano/usr/share/doc/nano
