Linux如何使用dpkg管理deb包_Linux dpkg管理deb包大全

老晨君_2246

老晨君_2246

2026-04-07

784人浏览

原创

dpkg 不能自动解决依赖,必须用 apt 处理;安装失败时先 dpkg -i 再 apt --fix-broken install;卸载需 dpkg -r 后 dpkg -p;禁用 --force-depends 生产环境;脚本安装应用 for 循环而非通配符。

linux如何使用dpkg管理deb包_linux dpkg管理deb包大全

dpkg 不能自动解决依赖,硬装大概率失败;依赖问题必须交给 apt 处理,不是跳过就能绕过去。

dpkg -i 安装失败:提示 dependency is not satisfiable 怎么办

这不是命令写错了,是 dpkg 本身不拉依赖——它只解压、复制文件、运行 maintainer script,不管系统缺不缺 libxyz1 或版本对不对。

  • 先执行 sudo dpkg -i package.deb,哪怕报错也别删包
  • 立刻接一句 sudo apt --fix-broken install,apt 会读取 dpkg 的中断状态,自动补全所有缺失依赖
  • 如果 apt --fix-broken install 报 “无法定位软件包”,检查源是否启用了对应仓库(比如 universe 或第三方源),运行 sudo apt update 后再试
  • 别手动下载一堆 .deb 用 dpkg -i 逐个装——容易触发循环依赖,apt 才是唯一靠谱的协调者

想跳过依赖检查?--force-depends 能用但后果明确

加 --force-depends 确实能让 dpkg -i 过掉依赖校验,比如 sudo dpkg -i --force-depends package.deb,但它不解决实际缺失的符号或库。

  • 程序启动时大概率报 symbol lookup error 或直接 segfault
  • --force-all 更危险:连架构不匹配(如在 amd64 系统上硬装 arm64 包)都拦不住
  • 仅适合临时验证包结构,比如确认 /etc/default/ 下有没有某个配置模板;生产环境或日常使用等于主动放弃稳定性保障

卸载 deb 包:为什么 dpkg -r 后重装总冲突

因为 dpkg -r 只删二进制和主程序,不碰配置、服务、缓存,残留文件会干扰后续安装。

  • 查真实包名别靠文件名猜:运行 dpkg -l | grep keyword 或 dpkg -I package.deb | grep Package
  • 干净卸载分两步:sudo dpkg -r package-name → sudo dpkg -P package-name
  • 如果包注册了 systemd 服务,dpkg -P 不会自动 stop/disable,得手动补:sudo systemctl stop package.service && sudo systemctl disable package.service
  • 残留的 /etc/ 配置不会被清掉,除非你确认无用,否则别手删——有些服务重启后会按默认值重建,反而覆盖你改过的设置

脚本化安装多个 deb:别用 dpkg -i *.deb

dpkg -i *.deb 表面省事,实际顺序不可控,且单个失败时整个命令就停了,你根本不知道哪个包卡住、哪个没装。

  • 用 for 循环更可控:for f in *.deb; do sudo dpkg -i "$f"; done
  • 关键判断依据不是退出码(dpkg 即使警告也返回 0),而是终端输出里有没有 Errors were encountered while processing:
  • 日志统一记在 /var/log/dpkg.log,带时间戳和操作类型,排查比翻终端快得多;脚本中可加 grep "status installed" /var/log/dpkg.log | tail -n 1 辅助验证

最常被忽略的点是:dpkg 没有“事务”概念,install 或 remove 中断后不会回滚,--configure 和 --unpack 是半成品状态,得靠 apt --fix-broken install 或手动 dpkg --configure -a 续上——但后者只修状态,不补依赖。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
while的用法
while的用法

while的用法是“while 条件: 代码块”,条件是一个表达式,当条件为真时,执行代码块,然后再次判断条件是否为真,如果为真则继续执行代码块,直到条件为假为止。本专题为大家提供while相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.25

334

5

scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

949

5

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.25

2700

5

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.18

5327

5

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2023.08.10

2348

6

default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.12.07

357

5

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3930

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3373

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2513

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习