news 2026/6/24 21:31:15

【银河麒麟】桌面操作系统-dpkg命令的常见用法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【银河麒麟】桌面操作系统-dpkg命令的常见用法

【 概 述 】银河麒麟桌面系统的包管工具dpkg在实际的生产、办公或是排障中有很大用处,下面笔者将结合案例展现dpkg命令的一些常见用法,文末拓展了一个实用的包提取工具


【 常见用法 】

1、# dpkg -l | grep 包名 查看是否安装了某个软件包,grep适用于我们记不清软件包的准确名称的情况

## 比如说我们的系统没有正常进入图形界面,可以通过该命令查看相关软件包的状态,是否被删除,或者直接没有找到这个软件;又比如我们想查看系统是是否装有wps软件,可以使用该命令确定,如上图返回五列,分别表示:软件包状态,ii为已安装;软件包名;软件包版本;架构;软件包描述

常见状态符号及含义如下:

ii
表示软件包已安装且配置完成(i=installed)。这是正常安装后的标准状态。

rc
表示软件包已被删除(r=removed),但配置文件仍保留在系统中(c=config-files)。可通过apt purge彻底清除。

un
表示软件包未被安装(u=unknown),且系统未保留其配置文件(n=not-installed)。

hi
表示软件包被手动标记为保留(h=hold),阻止自动升级或删除。可通过apt-mark hold设置。

pn
表示软件包被彻底清除(p=purged),包括所有配置文件(n=not-installed)。

ud
表示软件包因依赖问题未完成安装或配置(u=unpacked, d=half-configured)。

2、# dpkg -l | grep "^rc" 查看被卸载但仍保留有配置文件的软件包 # dpkg -l | grep -v "ii" 查看状态除正常已安装之外的所有其他状态的软件包

## 这两个命令常用于查看系统中被误删除的软件

3、# dpkg -L 软件包名 查看某个已安装软件包的所有文件和目录路径,适用于已安装的包 # dpkg -c 软件包全名 显示 .deb 包中所有文件的列表,包括路径和权限信息,适用于尚未安装的包文件

## 如图,我们可以看到ukui-greeter软件包安装的文件,这里我截取了部分,如配置文件ukui-greeter.conf和可执行文件也就是命令ukui-greeter,在排障中,也可以通过执行该命令初步确定软件包是否被删除

## 可以看到dpkg -L和dpkg -c的区别,前者指定包名即可,后者指定的是当前目录下存在的软件包全名

4、# dpkg -s 软件包名 查看软件包的详细信息

## 如图,可以看到软件的状态、版本、依赖和描述等

5、# dpkg -S 文件 查询某个文件所属软件包

## https://blog.csdn.net/H15578730450/article/details/155780845?spm=1001.2014.3001.5502

在上一篇库文件损坏的博客中,我们采用的是拷贝同系统的libmount.so.1.1.0库,将损坏的库替换,再重建软链接和更新库缓存。当然也可以通过查看该文件所属的软件包为libmount1,然后重装该包修复

6、# dpkg -i 软件包全名 安装指定软件包 # dpkg -i *.deb 安装当前目录下所有的软件包

## 上图为安装libmount1软件包示例

7、# dpkg -x 软件包全名 /target/directory 提取.deb包的内容到指定目录下(不安装)

## 这里我创建了一个空目录libmount1,并将当前目录下的libmount1软件包中的内容提取到了该目录下,可以看到这个包中的内容包含了libmount.so的库文件,我们也可以通过这种方法提取库文件替换损坏了的libmount.so.1.1.0

8、# dpkg -r 软件包名 卸载软件包但保留其配置文件 # dpkg -P 软件包名 彻底卸载软件包及其所有配置文件

## 以上为卸载软件的命令

9、# dpkg --add-architecture 体系架构 用于在当前架构中添加其他的体系架构 # dpkg --remove-architecture 体系架构 用于在架构列表中移除某架构 # dpkg --print-architecture 显示dpkg体系架构 # dpkg --print-foreign-architectures 显示已启用的异质体系结构

## 以上命令适用于能连外网源的情况,如图,我的系统架构是arm64,当我想通过这个系统下载amd64架构的软件包时,可以通过--add-architecture选项添加amd64的架构,然后通过apt download 软件包名:amd64指定下载这一架构的软件包

【 扩 展 】


# dpkg-repack 软件包名 提取系统中的某个软件包到当前目录下

## dpkg-repack常用于内网环境下,提取系统中的某个软件包。如上图,从同样系统的机器中提取libmount1软件包,放到libmount.so.1.1.0库损坏的机器上安装,同样可以解决库文件损坏的问题。dpkg-repack这个软件包有需要的私信

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/24 22:27:10

雷柏V500Pro键盘新手必看:5分钟搞定基础设置

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个交互式雷柏V500Pro键盘新手教学应用。功能:1. 分步图文指导 2. 3D键盘模型展示 3. 设置检查功能 4. 常见问题解答 5. 视频教程嵌入。使用HTML5CSS3实现响应式设…

作者头像 李华
网站建设 2026/6/24 19:57:24

Java小白必看:5分钟上手MD5加密解密

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个面向Java初学者的MD5教学项目,要求:1. 分步骤实现MD5加密(从MessageDigest初始化到结果转换);2. 每个步骤都有详…

作者头像 李华
网站建设 2026/6/24 20:13:22

AI一键搞定Java8安装:快马平台智能配置指南

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 请生成一个Java8自动化安装脚本,要求:1. 支持Windows/Linux/Mac三平台 2. 自动检测系统环境并选择对应版本 3. 自动配置JAVA_HOME环境变量 4. 包含安装后验证…

作者头像 李华
网站建设 2026/6/24 13:59:24

二叉排序树的构建与遍历

二叉排序树是一种特殊的二叉树,它的每个节点都满足:左子树所有节点值小于当前节点,右子树所有节点值大于当前节点。一、二叉排序树的核心结构首先定义树节点TreeNode,包含左孩子、右孩子和节点值:public class TreeNod…

作者头像 李华
网站建设 2026/6/25 17:23:01

AI风险行为识别系统开发:给安全防护装个“智能哨兵”

不管是商场安防、金融转账,还是网络运营,识别风险行为都是守住安全的关键。但传统识别方式太“笨拙”:监控室人员熬红眼睛盯屏,难免漏看异常;靠固定规则筛查金融诈骗,又追不上骗子的新套路。AI风险行为识别…

作者头像 李华