楚雄彝族自治州网站建设_网站建设公司_后端开发_seo优化
2025/12/17 20:30:13 网站建设 项目流程

【 概 述 】银河麒麟桌面系统的包管工具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这个软件包有需要的私信

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询