惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Hackread – Cybersecurity News, Data Breaches, AI and More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
V
V2EX
T
The Blog of Author Tim Ferriss
腾讯CDC
Hugging Face - Blog
Hugging Face - Blog
雷峰网
雷峰网
爱范儿
爱范儿
GbyAI
GbyAI
H
Help Net Security
I
InfoQ
罗磊的独立博客
酷 壳 – CoolShell
酷 壳 – CoolShell
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
人人都是产品经理
人人都是产品经理
J
Java Code Geeks
Microsoft Security Blog
Microsoft Security Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
N
Netflix TechBlog - Medium
Last Week in AI
Last Week in AI
宝玉的分享
宝玉的分享
云风的 BLOG
云风的 BLOG
Project Zero
Project Zero
P
Privacy & Cybersecurity Law Blog
A
Arctic Wolf
Know Your Adversary
Know Your Adversary
G
Google Developers Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tor Project blog
V
Vulnerabilities – Threatpost
Y
Y Combinator Blog
WordPress大学
WordPress大学
V
Visual Studio Blog
博客园_首页
G
GRAHAM CLULEY
K
Kaspersky official blog
T
Tailwind CSS Blog
T
Threat Research - Cisco Blogs
博客园 - Franky
D
Docker
Security Latest
Security Latest
I
Intezer
有赞技术团队
有赞技术团队
Application and Cybersecurity Blog
Application and Cybersecurity Blog
博客园 - 【当耐特】
B
Blog RSS Feed
T
The Exploit Database - CXSecurity.com
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

博客园 - 立体风

github上关于CMD高级命令知识 CMD命令启动模板 brainstorming SKILL技能完整中文翻译版 更新 claude code 官方插件市场 Sigmoid 函数的数学起源与定义详解 路径在powershell 配置文件 Profile 和 环境变量 PATH 的区别 当AI构建自身 nana gui库的回调函数 Nana c++ gui库的对话框函数 -- 理解 nana 的运行机制 介绍 MSVC 的编译命令/ Zc CMake 变量 ${CMAKE_CURRENT_BINARY_DIR} 学习 nana c++ 库 (一) AutoHotkey v2 的源码学习路线 Visual Studio 中行号右边的黄色竖条 大O表示法推导 allocate 中为什么有两个L vs的cl.exe 编译器 c++20 基本配置 IT高频词 address Python Install Manager (PIM,官方安装管理器)简介 debian 版本号及 apt 命令对软件的区分 sysctl的历史及常用命令 极限运算的法则 TeX 的 ctex 宏包的基本用法 XeLaTeX 的基本用法 XeLaTeX 介绍 为什么梯度向量 ∇f 指向函数值增长最快的方向 三角函数的余弦定理的证明 向量点积的几何定义的证明 方向导数公式的证明 仿射函数的定义及用途 凸集的定义及证明 在 LaTeX 公式中处理英文单词 梯度下降法 (Gradient Descent)的数学原理。 梯度下降法简介 向量形式表达最小二乘法 线性回归模型的核心数学表达式 risidual 音标和本义 coefficients的音标及本义(线性模型)
debian 中 contrib 软件仓库
立体风 · 2026-03-03 · via 博客园 - 立体风

一、contrib 的中文含义

在 Debian 里,contribcontributed 的缩写。

中文一般翻译为:

“贡献区”“辅助自由软件区”

它的准确含义不是“半自由软件”,而是:

软件本身符合自由软件标准,但依赖于非自由软件才能正常运行。


二、官方逻辑结构

Debian 软件分类结构是:

分类 是否自由 是否完全可独立运行
main ✅ 完全自由 ✅ 不依赖非自由
contrib ✅ 自由 ❌ 依赖 non-free
non-free ❌ 不完全自由

三、结合你给出的定义解释

你说:

软件本身是自由的
但依赖 non-free 软件

我们具体展开:

1️⃣ “软件本身是自由的”

意思是:

  • 源代码公开
  • 允许修改
  • 允许再分发
  • 符合 Debian 自由软件准则(DFSG)

2️⃣ “但依赖 non-free 软件”

意思是:

这个软件如果单独安装:

  • 可以运行
  • 但核心功能无法使用

因为它依赖:

  • 专有驱动
  • 闭源库
  • 专有运行环境

四、举例说明

举例 1:虚拟机管理程序

比如某个虚拟机前端工具:

  • 本身 GPL 开源
  • 但必须依赖某个专有 BIOS 或扩展模块

→ 就会被放入 contrib。


举例 2:驱动控制工具

某些硬件配置程序:

  • 控制界面是自由软件
  • 但真正驱动是闭源的

→ 也会进入 contrib。


五、为什么 Debian 要单独分出 contrib?

因为 Debian 有一个核心原则:

stable 的 main 必须完全自由、可独立存在。

如果一个自由软件依赖非自由组件:

它就不能进入 main。

但又不能算 non-free(因为它本身是自由的)。

于是单独设立:

👉 contrib


六、直观理解

可以把 Debian 软件仓库理解为三层:

[ main ]        纯自由世界
[ contrib ]     自由壳 + 非自由内核
[ non-free ]    非自由

contrib 是“桥梁地带”。


七、重要细节(很多人不知道)

如果你只启用:

main

然后安装 contrib 软件:

apt 会提示:

依赖无法满足

因为它依赖的 non-free 仓库没启用。

所以:

contrib 几乎总是和 non-free 一起启用。


八、一句话总结

contrib 的本质是:

“自由软件,但功能依赖非自由组件。”

不是“部分开源”,
而是“自由外壳 + 非自由依赖”。