Github 开源协议
这份笔记面向准备在 GitHub 上发布代码、库或文档的开发者,聚焦如何用开源许可证约束后续使用、修改、商用和再分发。内容用表格横向比较 MIT、Apache 2.0、GPL v3、LGPL v3、BSD、MPL、AGPL、Unlicense 与 Creative Commons,重点列出是否允许商用、是否要求衍生品开源、能否闭源使用以及是否允许修改等决策维度。它特别强调许可证“传染性”的差异:MIT、Apache、BSD 和 Unlicense 更宽松,通常允许闭源引用;GPL 与 AGPL 要求更强,AGPL 还覆盖网络部署和 SaaS 场景;LGPL 与 MPL 则分别以共享库和文件级开源形成折中。针对不同使用目的,笔记给出 MIT/Apache 2.0、GPL v3、LGPL/MPL、CC BY/CC0、Unlicense 等推荐取向,帮助读者在商业项目、自由软件、可闭源集成、文档内容和公共领域释放之间快速筛选。需要注意的是,Creative Commons 主要面向文章、文档等内容作品而非代码,选择时应区分代码许可证和内容授权。最后还提供 choosealicense.com 与 GitHub CLI 创建仓库时选择协议的入口,适合作为开源项目初始化前的速查清单。
目录#
[[toc]]
选择开源许可证(Open Source License)来约束代码
🏆 常见开源许可证一览
| 许可证 | 是否允许商用 | 是否需要开源衍生品 | 是否可闭源使用 | 是否允许修改 | 特点简述 |
|---|---|---|---|---|---|
| MIT | ✅ 是 | ❌ 否 | ✅ 是 | ✅ 是 | 非常宽松,允许闭源使用和修改,只需保留版权声明 |
| Apache 2.0 | ✅ 是 | ❌ 否 | ✅ 是 | ✅ 是 | 类似 MIT,但额外提供专利授权保护 |
| GPL v3 | ✅ 是 | ✅ 是 | ❌ 否 | ✅ 是 | 强制继承开源(传染性),适用于自由软件运动 |
| LGPL v3 | ✅ 是 | ✅ 是(库修改) | ✅ 是(动态链接) | ✅ 是 | 比 GPL 更宽松,适合库类项目 |
| BSD 2-Clause/3-Clause | ✅ 是 | ❌ 否 | ✅ 是 | ✅ 是 | 类似 MIT,主要在学术界和 BSD 系统中流行 |
| MPL 2.0 | ✅ 是 | ✅ 是(文件级别) | ✅ 是 | ✅ 是 | 文件级开源,不强制整个项目都开源 |
| AGPL v3 | ✅ 是 | ✅ 是(包括 SaaS) | ❌ 否 | ✅ 是 | 比 GPL 更严格,网络部署也要开源(SaaS 传染) |
| Unlicense | ✅ 是 | ❌ 否 | ✅ 是 | ✅ 是 | 完全放弃版权(进入公共领域),非常宽松 |
| Creative Commons (CC) | 部分许可 | 部分强制 | 部分许可 | ✅ 是 | 主要用于内容(非代码)作品:文章、文档等 |
| 使用目的 | 推荐协议 |
|---|---|
| 开源商业项目、库 | MIT / Apache 2.0 |
| 追求自由软件哲学 | GPL v3 |
| 开源但希望可闭源集成 | LGPL / MPL |
| 开源文档或内容 | CC BY / CC0 |
| 放弃所有权,最大自由 | Unlicense |
🚫 “传染性”说明(重要)
• MIT、Apache、BSD:无传染性,可闭源引用。
• GPL / AGPL:有强传染性,使用者也必须开源。
• LGPL:弱传染性,适合用于共享库。
• MPL:中等传染性,仅要求修改的文件开源。
🧭 工具推荐
• 🧪 choosealicense.com:GitHub 官方推荐选许可证网站。
• ✅ git init 后可执行 gh repo create 自动选择开源协议(MIT/Apache2/GPL…)
评论
还没有评论,来发第一个吧