许可证指南
一句话总结:了解开源许可证,合法使用开源软件。
📍 本章定位
- 服务方案:全部方案
- 学习方式:📖 选学
- 在流程中的作用:了解开源许可证,合法使用开源软件
- 核心知识点:许可证类型、许可证选择、许可证合规
- 预计时长:按需查阅
- 完成后能做什么:能够合法使用开源软件
一、许可证总览
1.1 许可证类型
1.2 许可证要素
| 要素 | 说明 | 重要性 |
|---|---|---|
| 使用权限 | 是否可以自由使用 | 高 |
| 修改权限 | 是否可以修改代码 | 高 |
| 分发权限 | 是否可以分发代码 | 高 |
| 商业使用 | 是否可以商业使用 | 高 |
| 专利授权 | 是否包含专利授权 | 中 |
二、宽松许可证
2.1 MIT 许可证
特点:最宽松的许可证,几乎没有任何限制。
条款:
- ✅ 可以自由使用
- ✅ 可以自由修改
- ✅ 可以自由分发
- ✅ 可以商业使用
- ✅ 可以闭源使用
- ⚠️ 需要保留版权声明
适用场景:
- 个人项目
- 商业项目
- 开源项目
示例:
markdown
MIT License
Copyright (c) 2026 [作者名]
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.2.2 Apache 2.0 许可证
特点:宽松许可证,包含专利授权。
条款:
- ✅ 可以自由使用
- ✅ 可以自由修改
- ✅ 可以自由分发
- ✅ 可以商业使用
- ✅ 包含专利授权
- ⚠️ 需要保留版权声明
- ⚠️ 需要标注修改内容
适用场景:
- 商业项目
- 企业项目
- 需要专利保护的项目
示例:
markdown
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
...2.3 BSD 许可证
特点:宽松许可证,类似 MIT。
条款:
- ✅ 可以自由使用
- ✅ 可以自由修改
- ✅ 可以自由分发
- ✅ 可以商业使用
- ⚠️ 需要保留版权声明
适用场景:
- 学术项目
- 个人项目
- 商业项目
示例:
markdown
BSD 3-Clause License
Copyright (c) 2026, [作者名]
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.三、弱传染许可证
3.1 LGPL 许可证
特点:弱传染许可证,允许闭源使用。
条款:
- ✅ 可以自由使用
- ✅ 可以自由修改
- ✅ 可以自由分发
- ✅ 可以商业使用
- ⚠️ 修改后的代码需要开源
- ⚠️ 需要保留版权声明
适用场景:
- 库和框架
- 需要闭源使用的项目
示例:
markdown
GNU Lesser General Public License
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
This version of the GNU Lesser Public License incorporates
the terms and conditions of version 3 of the GNU General
Public License, supplemented by the additional permissions
listed below.
...3.2 MPL 许可证
特点:弱传染许可证,文件级别传染。
条款:
- ✅ 可以自由使用
- ✅ 可以自由修改
- ✅ 可以自由分发
- ✅ 可以商业使用
- ⚠️ 修改后的文件需要开源
- ⚠️ 需要保留版权声明
适用场景:
- 库和框架
- 需要文件级别控制的项目
示例:
markdown
Mozilla Public License Version 2.0
1. Definitions
...3.3 EPL 许可证
特点:弱传染许可证,模块级别传染。
条款:
- ✅ 可以自由使用
- ✅ 可以自由修改
- ✅ 可以自由分发
- ✅ 可以商业使用
- ⚠️ 修改后的模块需要开源
- ⚠️ 需要保留版权声明
适用场景:
- 企业项目
- 需要模块级别控制的项目
示例:
markdown
Eclipse Public License - v 2.0
THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
...四、强传染许可证
4.1 GPL 许可证
特点:强传染许可证,整个项目传染。
条款:
- ✅ 可以自由使用
- ✅ 可以自由修改
- ✅ 可以自由分发
- ⚠️ 不能商业闭源使用
- ⚠️ 修改后的代码需要开源
- ⚠️ 需要保留版权声明
适用场景:
- 开源项目
- 不需要闭源的项目
示例:
markdown
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
...4.2 AGPL 许可证
特点:强传染许可证,网络使用也传染。
条款:
- ✅ 可以自由使用
- ✅ 可以自由修改
- ✅ 可以自由分发
- ⚠️ 网络使用也需要开源
- ⚠️ 修改后的代码需要开源
- ⚠️ 需要保留版权声明
适用场景:
- SaaS 项目
- 网络服务项目
示例:
markdown
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
...4.3 SSPL 许可证
特点:强传染许可证,服务提供商也需要开源。
条款:
- ✅ 可以自由使用
- ✅ 可以自由修改
- ✅ 可以自由分发
- ⚠️ 服务提供商需要开源整个栈
- ⚠️ 修改后的代码需要开源
- ⚠️ 需要保留版权声明
适用场景:
- 数据库项目
- 需要防止云厂商的项目
示例:
markdown
Server Side Public License
VERSION 1, OCTOBER 16, 2018
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
...五、许可证选择
5.1 选择指南
问题:如何选择合适的许可证?
解决方案:根据项目需求选择许可证。
选择指南:
| 需求 | 推荐许可证 | 原因 |
|---|---|---|
| 最宽松 | MIT | 几乎无限制 |
| 专利保护 | Apache 2.0 | 包含专利授权 |
| 学术项目 | BSD | 学术友好 |
| 库和框架 | LGPL | 允许闭源使用 |
| 开源项目 | GPL | 强制开源 |
| SaaS 项目 | AGPL | 网络使用也开源 |
5.2 许可证兼容性
问题:不同许可证是否兼容?
解决方案:检查许可证兼容性。
兼容性矩阵:
| 许可证 | MIT | Apache 2.0 | BSD | LGPL | GPL | AGPL |
|---|---|---|---|---|---|---|
| MIT | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Apache 2.0 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| BSD | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| LGPL | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| GPL | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| AGPL | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
5.3 许可证风险
问题:使用开源软件有什么风险?
解决方案:了解许可证风险。
风险清单:
| 风险 | 说明 | 影响 |
|---|---|---|
| 传染风险 | 使用 GPL 代码可能导致整个项目开源 | 高 |
| 专利风险 | 使用没有专利授权的代码可能被起诉 | 高 |
| 合规风险 | 不遵守许可证条款可能被起诉 | 中 |
| 兼容风险 | 不同许可证可能不兼容 | 中 |
六、许可证合规
6.1 合规检查
问题:如何检查许可证合规?
解决方案:进行许可证合规检查。
检查清单:
- [ ] 检查所有依赖的许可证
- [ ] 检查许可证兼容性
- [ ] 保留版权声明
- [ ] 标注修改内容
- [ ] 提供许可证文本
6.2 合规工具
问题:如何自动化许可证合规?
解决方案:使用许可证合规工具。
工具清单:
| 工具 | 用途 | 命令 |
|---|---|---|
| license-checker | 检查 npm 依赖许可证 | npx license-checker |
| pip-licenses | 检查 Python 依赖许可证 | pip-licenses |
| cargo-license | 检查 Rust 依赖许可证 | cargo license |
| FOSSA | 自动化许可证合规 | fossa analyze |
6.3 合规流程
问题:如何建立许可证合规流程?
解决方案:建立许可证合规流程。
流程步骤:
七、最佳实践
7.1 许可证选择最佳实践
问题:如何选择合适的许可证?
解决方案:遵循最佳实践。
最佳实践:
| 实践 | 说明 | 重要性 |
|---|---|---|
| 明确需求 | 明确项目需求 | 高 |
| 了解条款 | 了解许可证条款 | 高 |
| 检查兼容性 | 检查许可证兼容性 | 高 |
| 保留声明 | 保留版权声明 | 高 |
| 文档记录 | 记录许可证信息 | 中 |
7.2 许可证合规最佳实践
问题:如何确保许可证合规?
解决方案:遵循最佳实践。
最佳实践:
| 实践 | 说明 | 重要性 |
|---|---|---|
| 自动化检查 | 使用工具自动化检查 | 高 |
| 定期审查 | 定期审查许可证合规 | 高 |
| 培训团队 | 培训团队许可证知识 | 中 |
| 文档记录 | 记录许可证合规情况 | 中 |
7.3 许可证风险最佳实践
问题:如何降低许可证风险?
解决方案:遵循最佳实践。
最佳实践:
| 实践 | 说明 | 重要性 |
|---|---|---|
| 风险评估 | 评估许可证风险 | 高 |
| 法律咨询 | 必要时咨询律师 | 高 |
| 保险购买 | 购买开源许可证保险 | 中 |
| 持续监控 | 持续监控许可证变化 | 中 |
八、核心洞察
核心洞察
许可证是开源软件的法律基础。
- 宽松许可证:MIT、Apache 2.0、BSD
- 弱传染许可证:LGPL、MPL、EPL
- 强传染许可证:GPL、AGPL、SSPL
- 专有许可证:商业许可证、个人许可证、企业许可证
记住:使用开源软件前,必须了解其许可证条款。
九、参考与延伸
[1] Choose a License(2026)— 许可证选择指南
[2] SPDX License List(2026)— 许可证列表
[3] FOSSA(2026)— 许可证合规工具
十、下一步
完成本章后,进入: