Debian 安装 hplip 依赖冲突问题排查与解决

在 Debian 系统上安装打印机驱动(例如 hplip)时,我遇到了一次比较典型的 依赖冲突问题。这里记录一下问题的现象、原因以及解决办法,希望能帮到遇到相同情况的朋友。


问题现象

在 Debian 10 (buster) 上安装 hplip 时,执行:

复制代码
sudo apt install hplip

报错提示缺少依赖,于是尝试单独安装:

复制代码
sudo apt install python3-pil python3-reportlab

结果出现错误:

复制代码
依赖 python3 (< 3.8),但是 3.9.2-3 正要被安装

也就是说,python3-pil 和 python3-reportlab 这两个包要求的 Python 版本必须小于 3.8,而我系统里已经有了 3.9.2,导致依赖直接冲突,安装失败。


原因分析

  • Debian 10 (buster) 默认自带 Python 3.7。

  • 我的系统里不知不觉已经装上了 Python 3.9(很可能是从 bullseye 或 backports 源拉下来的)。

  • 但 buster 源里的 python3-pil、python3-reportlab 等包,依赖关系写死了 python3 (< 3.8)。

  • 于是:系统里 Python 太新,依赖包太老 → 冲突。

换句话说,就是 系统处于"Debian 10 + 部分 Debian 11 包"的混合状态,APT 的依赖链被破坏了。


解决方案对比

针对这种情况,有三种思路:

方案 1:回退 Python,保持纯 Debian 10

卸载掉 python3.9,重新装回 3.7,然后再装依赖。

缺点是软件版本老,不推荐。

方案 2:升级系统到 Debian 11 ✅(推荐)

既然 Python 已经是 3.9,干脆把整个系统升级到 Debian 11 (bullseye) ,保持一致性。

操作步骤:

  1. 编辑源列表:

    复制代码
    sudo nano /etc/apt/sources.list

    将 buster 全部替换为 bullseye:

    复制代码
    deb http://deb.debian.org/debian bullseye main contrib non-free
    deb http://deb.debian.org/debian bullseye-updates main contrib non-free
    deb http://security.debian.org/debian-security bullseye-security main contrib non-free
  2. 更新并全面升级:

    复制代码
    sudo apt update
    sudo apt full-upgrade
  3. 安装依赖和 hplip:

    复制代码
    sudo apt install python3-pil python3-reportlab hplip

至此,依赖问题完全解决,hplip 可以正常安装。

方案 3:保持 Debian 10,但用 HP 官方安装脚本

HP 官方提供了 hplip.run 脚本,直接绕过 apt 依赖,自带 Python 检测。

适合不想升级系统的用户。

  • 去官网下载最新版本:

    👉 HP Linux Imaging and Printing (HPLIP)

  • 下载 .run 文件,例如:

    bash 复制代码
    wget https://downloads.sourceforge.net/project/hplip/hplip/3.23.12/hplip-3.23.12.run
  • 安装:

    bash 复制代码
    sh hplip-3.23.12.run
相关推荐
张文君5 分钟前
ubuntu iscsi客户端 关闭磁盘
linux·运维·ubuntu
海姐软件测试8 分钟前
Python 自动化与 AI 结合:基于 Jenkins 的回归验证实践
人工智能·python·自动化
Haoyunyi15 分钟前
2026年做期货量化,和三年前已经不是一回事了
大数据·人工智能·python·金融·区块链
再__努力1点32 分钟前
一个开源的AI边缘计算平台:一个项目把算能、瑞芯微、x86的NPU全打通了
人工智能·python·课程设计·媒体·流媒体
小oo呆39 分钟前
【学习心得】Python函数参数中的两个特殊分隔符
开发语言·python
x10n91 小时前
微软 VC++ 运行库合集VCRedistPack
开发语言·c++·microsoft·vc++运行库·dll报错
道尔柯南1 小时前
Linux 网络编程:从零掌握 TCP Socket 编程(附 C++ 实战)
linux·网络·tcp/ip
qz_Serene1 小时前
C++:string(底层,常用接口,具体题目,模拟实现)
开发语言·c++
NiceBlueChai1 小时前
Qt 跨线程传递多容器嵌套结构:一次 Release 实测
开发语言·qt