Debian 新手必懂的基本概念
Debian 是目前最强调“稳定性”和“自由软件原则”的通用 Linux 发行版之一。但它的设计哲学、包管理文化和版本策略,也让很多新手在前几个月反复踩坑。下面列出真正高频、真正容易搞混的核心概念,用对比和表格帮你快速理清。
1. Debian 到底是什么?
- Debian = Linux 内核 + 海量自由软件 + 极其严格的整合、测试与政策审核流程
- Debian 自己几乎不开发内核(主要使用上游 vanilla kernel 或极小幅修补)
- Debian 的真正价值在于:它把几万个上游软件整合成一个能长期稳定运行的整体系统
所以你常听到的“Debian 软件很旧”“更新很慢”,其实是故意为之的设计结果,而不是 bug。
2. 三大版本分支(必须彻底搞懂)
| 分支 | 代号命名规则 | 软件新旧程度 | 稳定性 | 推荐使用场景 | 2026年2月现状 |
|---|---|---|---|---|---|
| stable | 玩具/角色名字 | 较旧 | ★★★★★ | 服务器、生产环境、日常主力桌面 | Debian 13 "trixie"(13.3 已发布) |
| testing | 下一个稳定版代号 | 中等偏新 | ★★★☆☆ | 愿意偶尔修 bug 的桌面用户 | forky(下一个稳定版候选) |
| unstable | sid(永远是 sid) | 最新滚动 | ★★☆☆☆ | 开发者、必须追最新软件的人 | sid(永久滚动开发版) |
新手最致命错误:上来就直接装 sid 或 testing,然后崩溃喊“系统又坏了”。
2026 年新手推荐路径:
- 桌面/服务器主力 → 直接用 stable(trixie)
- 想要较新软件但不想太冒险 → stable + 少量从 testing 拉包(apt pinning)
- 开发/追前沿 → sid + 学会用 apt-listbugs / apt-listchanges 提前看问题
3. 软件包命名、版本与组件(section)逻辑
常见软件包命名格式:
text
软件名_上游版本-Debian修订号_架构.deb
例子: vim_2:9.1.0016-1_amd64.deb
^^^ ^^^^^^^^^^^^^^^^ ^^^^^
名称 上游版本-修订 架构Debian 把软件包分为几个主要组件(在 sources.list 或软件中心可见):
- main:完全符合 DFSG 自由软件准则
- contrib:软件本身自由,但依赖非自由组件
- non-free-firmware:2023年后独立出来的非自由固件区(很重要!网卡、显卡常用)
- non-free:不自由的软件/驱动
常见疑问:为什么 nvidia-driver、broadcom-sta 在 non-free / non-free-firmware?因为包含厂商闭源代码或二进制固件。
4. 常用包管理命令对照表(建议背下来)
| 想做的事 | apt(现代首选) | apt-get(经典版) | aptitude(交互解决冲突神器) | dpkg(底层命令) |
|---|---|---|---|---|
| 更新软件源索引 | apt update | apt-get update | aptitude update | — |
| 升级已安装软件(保守) | apt upgrade | apt-get upgrade | aptitude safe-upgrade | — |
| 完整升级(允许删除/安装依赖) | apt full-upgrade | apt-get dist-upgrade | aptitude full-upgrade | — |
| 安装软件 | apt install vim git | apt-get install vim git | aptitude install vim | dpkg -i xxx.deb |
| 卸载软件(保留配置文件) | apt remove vim | apt-get remove vim | aptitude remove vim | — |
| 连配置文件一起删除 | apt purge vim | apt-get purge vim | aptitude purge vim | — |
| 清理无用依赖 | apt autoremove | apt-get autoremove | — | — |
| 查看软件包详情 | apt show vim | apt-cache show vim | aptitude show vim | dpkg -s vim |
| 搜索软件包 | apt search neofetch | apt-cache search neofetch | aptitude search neofetch | — |
2026 年日常建议:优先用 apt,冲突严重时改用 aptitude 交互式解决(它会给你几种方案选)。
5. 软件包状态标记(aptitude / dpkg 最直观)
常见标记字母:
- i = installed(已安装)
- p = purged(已彻底删除,包括配置)
- c = config files(只剩配置文件)
- h = hold(被手动 hold 住,不会升级)
快速查看被 hold 的包:apt-mark showhold 解除 hold:apt-mark unhold 包名
6. 配置文件在哪里?谁负责改?(最容易崩溃的地方)
| 路径 | 内容性质 | 主要维护者 | 被覆盖风险 |
|---|---|---|---|
| /etc/default/ | 默认值(常被 override) | 软件包维护者 | 中 |
| /etc/default/grub | GRUB 引导参数 | 系统管理员 | 高 |
| /etc/apt/sources.list* | 软件源列表 | 系统管理员 | 极高 |
| /etc/apt/apt.conf.d/ | apt 细粒度配置(分文件) | 软件包 + 管理员 | 中 |
| /etc/systemd/ | systemd 单元文件 | 软件包为主,可 override | 中 |
| ~/.config/ | 用户个人配置 | 用户自己 | 低 |
| /usr/share/ | 只读的默认数据 | 软件包安装时放置 | 无 |
生存法则:尽量不要直接改软件包自带的原始文件,建议:
- 用 /etc/apt/apt.conf.d/99local 放 apt 自定义配置
- 用 /etc/default/xxx 里的变量或 drop-in 方式覆盖 systemd
- GRUB 修改后记得 update-grub
7. 依赖关系的关键字段(apt show 会显示)
- Depends:硬性依赖(没装就无法使用)
- Recommends:强烈推荐安装(默认会装,大部分人需要)
- Suggests:可选建议(默认不装)
- Conflicts / Breaks:会冲突/破坏其他包
遇到复杂依赖冲突时,aptitude 通常比 apt 更聪明,能给出多种解决方案让你选。
8. 新手 2026 年优先掌握顺序建议
- 彻底搞懂 stable / testing / sid 区别,并选定一个(建议从 trixie 开始)
- 熟练掌握 apt update && apt upgrade && apt full-upgrade 三连
- 学会用 apt search、apt show、apt-file search xxx 找文件归属
- 知道如何正确添加 non-free / non-free-firmware / contrib 源
- 看懂 /var/log/apt/history.log 和 journalctl -u apt-daily*
- 冲突时学会用 aptitude 交互解决(别一直狂按 y)
- 知道哪些包适合 apt-mark hold(kernel、nvidia、plymouth、firmware 等)
- 熟悉如何安全升级到下一个大版本(从 bookworm → trixie 已有很多教程)
掌握以上内容,你就已经超过 80% “只会 apt install”的新手了。
祝你在 Debian 世界里少砸键盘、多学到东西~
版权声明:
作者:后浪云
链接:https://idc.net/help/442466/
文章版权归作者所有,未经允许请勿转载。
THE END
