开源软件协议分类对比表
协议类型 | 代表协议 | 核心规则 | 允许/禁止操作 | 适合场景 |
---|---|---|---|---|
宽松型 | MIT、Apache 2.0 | 允许免费使用、修改、商用,可闭源,但需保留原作者版权声明。 | ✅ 闭源商用 ⚠️ 必须署名 | 快速开发商用软件(如APP、网站) |
强开源型 | GPL(v2/v3) | 修改后分享代码必须公开所有内容(含自研部分),禁止闭源商用。 | ❌ 改后闭源商用 ✅ 必须全开源 | 推动技术开源(如Linux系统) |
弱开源型 | LGPL | 未修改代码可闭源商用,修改部分需公开,未修改部分可保留。 | ✅ 直接引用闭源 ⚠️ 修改需开源 | 开发可复用的工具库/框架 |
限制商用型 | AGPL、EPL | 免费使用/分享可闭源,但商用(对外服务)需开源。 | ✅ 个人免费使用 ❌ 商用闭源 | 防止商业化滥用(如企业级工具) |
协议核心规则一句话总结
- MIT/Apache:随便用,写清楚"谁写的"就行。
- GPL:改了就得全公开,别想藏着掖着赚钱。
- LGPL:直接用不管你,改了就把改的部分交出来。
- AGPL:自己玩随意,赚钱就得把代码亮出来。
选择协议快速指南
- 想最简单授权 → 选 MIT(对使用者几乎无限制)。
- 想保护开源生态 → 选 GPL(强制所有衍生作品开源)。
- 开发插件/库 → 选 LGPL(允许闭源程序调用你的代码)。
- 反商业垄断 → 选 AGPL(商用即强制开源)。
注意:使用他人代码前,务必仔细阅读协议原文,避免版权风险!