如何列出 Ubuntu 和 Debian 上已安装的软件包

news2024/9/30 17:30:47

当你安装了 Ubuntu 并想好好用一用。但在将来某个时候,你肯定会遇到忘记曾经安装了那些软件包。

这个是完全正常。没有人要求你把系统里所有已安装的软件包都记住。但是问题是,如何才能知道已经安装了哪些软件包?如何查看安装过的软件包呢?

列出 Ubuntu 和 Debian 上已安装的软件包

如果你经常用 apt 命令,你可能觉得会有个命令像 apt 一样可以列出已安装的软件包。不算全错。

apt-get 命令 没有类似列出已安装软件包的简单的选项,但是 apt 有一个这样的命令:

apt list --installed

这个会显示使用 apt 命令安装的所有的软件包。同时也会包含由于依赖而被安装的软件包。也就是说不仅会包含你曾经安装的程序,而且会包含大量库文件和间接安装的软件包。

用 atp 命令列出显示已安装的软件包

由于列出出来的已安装的软件包太多,用 grep 过滤特定的软件包是一个比较好的办法。

apt list --installed | grep program_name

如上命令也可以检索出使用 .deb 软件包文件安装的软件。是不是很酷?

如果你阅读过 apt 与 apt-get 对比的文章,你可能已经知道 aptapt-get 命令都是基于 dpkg。也就是说用 dpkg 命令可以列出 Debian 系统的所有已经安装的软件包。

dpkg-query -l

你可以用 grep 命令检索指定的软件包。

用 dpkg 命令列出显示已经安装的软件包

现在你可以搞定列出 Debian 的软件包管理器安装的应用了。那 Snap 和 Flatpak 这个两种应用呢?如何列出它们?因为它们不能被 aptdpkg 访问。

显示系统里所有已经安装的 Snap 软件包,可以这个命令:

snap list

Snap 可以用绿色勾号标出哪个应用来自经过认证的发布者。

列出已经安装的 Snap 软件包

显示系统里所有已安装的 Flatpak 软件包,可以用这个命令:

flatpak list

让我来个汇总:

apt 命令显示已安装软件包:

apt list –installed

dpkg 命令显示已安装软件包:

dpkg-query -l

列出系统里 Snap 已安装软件包:

snap list

列出系统里 Flatpak 已安装软件包:

flatpak list

显示最近安装的软件包

现在你已经看过以字母顺序列出的已经安装软件包了。如何显示最近已经安装的软件包?

幸运的是,Linux 系统保存了所有发生事件的日志。你可以参考最近安装软件包的日志。

有两个方法可以来做。用 dpkg 命令的日志或者 apt 命令的日志。

你仅仅需要用 grep 命令过滤已经安装的软件包日志。

grep " install " /var/log/dpkg.log

这会显示所有的软件安装包,其中包括最近安装的过程中所依赖的软件包。

2019-02-12 12:41:42 install ubuntu-make:all 16.11.1ubuntu1
2019-02-13 21:03:02 install xdg-desktop-portal:amd64 0.11-1
2019-02-13 21:03:02 install libostree-1-1:amd64 2018.8-0ubuntu0.1
2019-02-13 21:03:02 install flatpak:amd64 1.0.6-0ubuntu0.1
2019-02-13 21:03:02 install xdg-desktop-portal-gtk:amd64 0.11-1
2019-02-14 11:49:10 install qml-module-qtquick-window2:amd64 5.9.5-0ubuntu1.1
2019-02-14 11:49:10 install qml-module-qtquick2:amd64 5.9.5-0ubuntu1.1
2019-02-14 11:49:10 install qml-module-qtgraphicaleffects:amd64 5.9.5-0ubuntu1

你也可以查看 apt 历史命令日志。这个仅会显示用 apt 命令安装的的程序。但不会显示被依赖安装的软件包,详细的日志在日志里可以看到。有时你只是想看看对吧?

grep " install " /var/log/apt/history.log

具体的显示如下:

Commandline: apt install pinta
Commandline: apt install pinta
Commandline: apt install tmux
Commandline: apt install terminator
Commandline: apt install moreutils
Commandline: apt install ubuntu-make
Commandline: apt install flatpak
Commandline: apt install cool-retro-term
Commandline: apt install ubuntu-software

显示最近已安装的软件包

apt 的历史日志非常有用。因为他显示了什么时候执行了 apt 命令,哪个用户执行的命令以及安装的软件包名。

小技巧:在软件中心显示已安装的程序包名

如果你觉得终端和命令行交互不友好,还有一个方法可以查看系统的程序名。

可以打开软件中心,然后点击已安装标签。你可以看到系统上已经安装的程序包名

在软件中心显示已安装的软件包

这个不会显示库和其他命令行的东西,有可能你也不想看到它们,因为你的大量交互都是在 GUI。此外,你也可以用 Synaptic 软件包管理器。

结束语

我希望这个简易的教程可以帮你查看 Ubuntu 和基于 Debian 的发行版的已安装软件包。

如果你对本文有什么问题或建议,请在下面留言。


via: https://itsfoss.com/list-installed-packages-ubuntu

作者:Abhishek Prakash 选题:lujun9972 译者:guevaraya 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1072792.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智慧工地:数字革命下的建筑业新趋势

在当今建筑领域,智慧工地正迅速崭露头角。这个概念不仅代表了技术进步,还预示着建筑行业的数字化和智能化未来。从多个角度来看,智慧工地都具有深远的意义,它正在改变着我们建筑的方式和未来。 提高工程效率 智慧工地利用物联网&…

FP-Growth算法全解析:理论基础与实战指导

目录 一、简介什么是频繁项集?什么是关联规则挖掘?FP-Growth算法与传统方法的对比Apriori算法Eclat算法 FP树:心脏部分 二、算法原理FP树的结构构建FP树第一步:扫描数据库并排序第二步:构建树 挖掘频繁项集优化&#x…

Android:自定义列表弹窗的单选图标样式、去掉列表弹窗的上下提示线

正常声明一个单选列表弹窗,如下代码: AlertDialog.Builder builder new AlertDialog.Builder(this, R.style.Theme_AlertDialog_Base);String []items {"1111111","2222222","3333333","4444444","5555…

Android APT实现,SqInject的实现原理

一、APT技术简介 1、APT定义 APT(Annotation Processing Tool)即注解处理器,是一种处理注解的工具,确切的说它是javac的一个工具,它用来在编译时扫描和处理注解。注解处理器以Java代码作为输入,生成.java文件作为输出 2、注解定…

【three.js】坐标辅助器和轨道控制器

结合上一篇基本的3d页面代码,我们在里面添加坐标辅助器,也就是x y z轴坐标系,这样可以更直观的查看物体的位置 一、添加坐标辅助器 查看效果,z轴不显示是因为,z轴是正对我们脸部,从我们正面看就是一个点 …

蓝桥杯报名已经开始,还不知道怎么准备?教你一文通关蓝桥!

目录 引言 1、什么是蓝桥杯? 2、我应不应该参加蓝桥杯? 3、现在0基础参加还来得及吗?我不敢参加怎么办? 4、蓝桥杯的流程? 5、如何学习? 如果你是零基础 如果你有基础 6、刷题?周赛&am…

数据重整:用Java实现精准Excel数据排序的实用策略

摘要:本文由葡萄城技术团队原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 前言 在数据处理或者数据分析的场景中,需要对已有的数据进行排序,在E…

C++day02(引用、const、函数重载、结构体、类)

今日任务 代码&#xff1a; #include <iostream> /** 自己封装一个矩形类(Rect)&#xff0c;拥有私有属性:宽度(width)、高度(height)&#xff0c;定义公有成员函数: 初始化函数:void init(int w, int h) 更改宽度的函数:set_w(int w) 更改高度的函数:set_h(int h) 输出…

Maven 环境配置

Maven 是一个基于 Java 的工具&#xff0c;所以要做的第一件事情就是安装 JDK。 系统要求 项目 要求 JDK Maven 3.3 要求 JDK 1.7 或以上 Maven 3.2 要求 JDK 1.6 或以上 Maven 3.0/3.1 要求 JDK 1.5 或以上 内存 没有最低要求 磁盘 Maven 自身安装需要大约 10 MB 空间…

SwipeRefreshLayout 下拉刷新

1.SwipeRefreshLayout是Androidx提供的下拉刷新的库&#xff0c;需要在代码中引入该库&#xff0c;才能使用。 implementation androidx.swiperefreshlayout:swiperefreshlayout:1.1.0 2.在layout中配置。SwipeRefreshLayout&#xff0c;必须包含一个根节点的子view <com.e…

5+乳酸化修饰+预后模型

今天给同学们分享一篇乳酸化修饰预后模型的生信文章“Lactylation-Related Gene Signature Effectively Predicts Prognosis and Treatment Responsiveness in Hepatocellular Carcinoma”&#xff0c;这篇文章于2023年4月25日发表在Pharmaceuticals (Basel)期刊上&#xff0c;…

spring 事物源码阅读之事务与持久化操作的结合

前面文章说到在开启事务后&#xff0c;会将数据库连接存放在当前线程的ConnectionHolder。那么后续的数据库持久化操作是怎么感知的呢。这里就要说到一个重要的类TransactionSynchronizationManager。 TransactionSynchronizationManager TransactionSynchronizationManager是…

IDEA2021创建Web项目配置Tomcat

1.新建一个普通的项目。 2.右键新建的项目&#xff0c;选择添加框架支持 3.勾选web application 4.在WEB-INF里创建lib和classes文件夹 5.file-project structure-modules-paths&#xff0c;选择use module compile output path&#xff0c;将output path和test output path的路…

Springboot知识点必知必会(一)

mvc设计模式 MVC设计模式是Model-View-Controller的缩写&#xff0c;它是一种用于设计用户界面的软件设计模式。Spring MVC是Spring框架的一个模块&#xff0c;它提供了一种基于Java的方式来实现MVC设计模式。 以下是Spring MVC中MVC设计模式的组成部分和工作原理&#xff1a; …

在Linux中通过docker安装appnode面板

先在Linux中安装docker&#xff0c;然后在docker中安装appnode面板&#xff0c;并进行docker网络端口映射。 安装docker 第一步&#xff0c;卸载旧版本docker。 若系统中已安装旧版本docker&#xff0c;则需要卸载旧版本docker以及与旧版本docker相关的依赖项。 命令&#…

计算机竞赛 : 题目:基于深度学习的水果识别 设计 开题 技术

1 前言 Hi&#xff0c;大家好&#xff0c;这里是丹成学长&#xff0c;今天做一个 基于深度学习的水果识别demo 这是一个较为新颖的竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng-senior/pos…

访问Apache Tomcat的虚拟主机管理页面

介绍 通过Tomcat Host Manager应用可以创建、删除、管理Tomcat内的虚拟主机&#xff08;virtual hosts&#xff09;。该应用是Tomcat安装的一部分&#xff0c;默认在<Tomcat安装目录>/webapps/host-manager&#xff1a; 配置用户名、密码、角色 要访问Host Manager应…

MySQL-1(12000字详解)

一&#xff1a;数据库的引入 数据库在我们以后工作中是一个非常常用的知识&#xff0c;数据库用来存储数据&#xff0c;但是有些同学可能就会疑惑了&#xff0c;存储数据用文件就可以了&#xff0c;为什么还要弄个数据库呢&#xff1f; 文件保存数据有以下几个缺点&#xff1…

Mainflux IoT:Go语言轻量级开源物联网平台,支持HTTP、MQTT、WebSocket、CoAP协议

Mainflux是一个由法国的创业公司开发并维护的安全、可扩展的开源物联网平台&#xff0c;使用 Go语言开发、采用微服务的框架。Mainflux支持多种接入设备&#xff0c;包括设备、用户、APP&#xff1b;支持多种协议&#xff0c;包括HTTP、MQTT、WebSocket、CoAP&#xff0c;并支持…

vue实现echarts中 9种 折线图图例

let datas [{ DivideScore: 7, UserScore: 7.2, Name: 目标制定 },{ DivideScore: 7, UserScore: 7, Name: 具体性 },{ DivideScore: 7, UserScore: 7.5, Name: 可衡量性 },{ DivideScore: 7, UserScore: 7, Name: 可实现性 },{ DivideScore: 7, UserScore: 7, Name: 时间限定…