# 开源许可证选择与生成 - MIT、Apache、GPL 对比与 LICENSE 生成

> 回答几个问题推荐合适的开源许可证，对比 MIT、Apache-2.0、BSD、MPL、LGPL、GPL、AGPL、CC0 等 15 种，生成填好年份姓名的 LICENSE 与 SPDX 文件头。

- 网址: https://qilingtools.com/zh/license-picker
- 分类: 开发工具 (https://qilingtools.com/zh/dev)
- 标签: [开发](https://qilingtools.com/zh/tags/dev), [运维部署](https://qilingtools.com/zh/tags/devops)
- 最后更新: 2026-10-26
- 价格: 免费，无需注册
- 隐私: 在浏览器本地处理，文件不上传服务器

给项目选开源许可证时，MIT、Apache-2.0、GPL 到底差在哪？这个工具先用五个问题帮你缩小范围：授权的是代码、文档还是数据；别人修改后是否必须开源（宽松、文件级、库级、整个作品、连网络服务也算）；是否需要明确的专利授权；是否要求署名；是否要能合并进 GPLv2 / GPLv3 项目。每个许可证都会给出匹配理由和不合适的原因。对比表把 15 种常用许可证（MIT、Apache-2.0、BSD-2/3-Clause、ISC、MPL-2.0、LGPL-2.1/3.0、GPL-2.0/3.0、AGPL-3.0、Unlicense、CC0-1.0，以及用于文档的 CC BY 4.0 / CC BY-SA 4.0）按专利授权、保留声明、标明修改、公开源码范围、网络条款、商标、GPL 兼容性、OSI / FSF 认可逐项列出。选定后可以生成填好年份和版权人的 LICENSE 全文（GNU、Apache、MPL 等长篇正文是逐字拷贝的官方文本，按需加载），带 -only / -or-later 的 SPDX 标识符和双许可表达式，十几种语言注释风格的源码文件头（完整声明或 REUSE 风格的 SPDX 标签），以及 package.json、Cargo.toml、pyproject.toml、composer.json、gemspec、pom.xml 的许可证字段和 README 徽章。全部在浏览器本地完成。

## 使用步骤

1. 在“帮我选”里回答作品类型、Copyleft、专利、署名、GPL 兼容等问题，查看推荐排序与理由
2. 需要细看时切到“对比表”，点击许可证名称进入生成
3. 填写年份、版权人、项目名，复制或下载 LICENSE，并复制源码文件头和包清单字段

## 功能特点

- 五个问题推荐许可证，并说明匹配与不匹配的原因
- 15 种许可证逐项对比（专利、Copyleft 范围、网络条款、GPL 兼容、OSI/FSF）
- 官方原文逐字收录，填好年份与版权人
- SPDX 标识符（-only / -or-later）与双许可表达式
- 多语言源码文件头：完整声明或 REUSE SPDX 标签
- package.json、Cargo.toml、pyproject.toml 等清单字段与 README 徽章
- 长篇正文按需懒加载，本地处理

## 常见问题

### MIT 和 Apache-2.0 怎么选？

两者都是宽松许可证，允许闭源商用。Apache-2.0 多了明确的专利授权和“专利报复”条款（起诉专利侵权的人会失去授权），并要求保留 NOTICE 文件、标明修改，适合公司项目或涉及专利的代码；MIT 更短更简单。注意 Apache-2.0 与 GPLv2 不兼容，Rust 社区常用“MIT OR Apache-2.0”双许可兼顾两者。

### GPL、LGPL、AGPL 有什么区别？

GPL 是强 Copyleft：分发包含 GPL 代码的程序（包括链接在一起的程序）时，整个程序都要以 GPL 开源。LGPL 只要求库本身的修改开源，闭源程序可以动态链接使用。AGPL 在 GPLv3 基础上增加网络条款：修改后通过网络向用户提供服务（SaaS），也必须向这些用户提供源码。

### -only 和 -or-later 是什么意思？

GNU 许可证允许你选择“仅此版本”（如 GPL-3.0-only）或“此版本或任何更高版本”（GPL-3.0-or-later）。or-later 让代码将来能与新版 GPL 的代码合并，但也意味着接受 FSF 未来发布的条款。Linux 内核是 GPL-2.0-only，因此不能合并 GPLv3 代码。

### 文档、图片和数据该用什么许可证？

软件许可证主要针对代码。文档、图片、视频常用 CC BY 4.0（署名即可）或 CC BY-SA 4.0（相同方式共享）；数据集、示例代码、素材希望别人随意使用时可以用 CC0 放弃权利。CC0 明确不授予专利权、未获 OSI 批准，不建议用于软件。本工具的说明仅供参考，不构成法律意见。

## 相关工具

- [JSON 格式化](https://qilingtools.com/zh/json): 免费在线 JSON 格式化：一键美化、压缩，实时语法校验并定位到出错行列，支持树形视图折叠、键名排序、转义与去转义、Unicode 转中文、复制下载，数据不上传。
- [Base64 编解码](https://qilingtools.com/zh/base64): 免费在线 Base64 编码解码工具：支持中文 UTF-8、URL 安全变体，文本与 Base64 互转，实时转换，本地处理不上传。
- [URL 编解码](https://qilingtools.com/zh/url-encode): 免费在线 URL 编码解码工具：encodeURIComponent 与 encodeURI 两种模式，处理中文、空格与特殊符号，本地实时转换不上传。
- [JWT 解析](https://qilingtools.com/zh/jwt): 免费在线 JWT 解析工具：解码 JWT 的 Header 与 Payload，展示过期时间、签发时间等，本地解析不上传，保护令牌安全。
- [时间戳转换](https://qilingtools.com/zh/timestamp): 免费在线 Unix 时间戳转换工具：时间戳与日期互转，自动识别秒/毫秒，显示本地时间、UTC、ISO 8601 和相对时间，实时更新。
- [哈希计算](https://qilingtools.com/zh/hash): 免费在线哈希/摘要计算工具：对文本或文件计算 SHA-1、SHA-256、SHA-384、SHA-512，使用浏览器加密接口本地完成，文件不上传。
- [UUID 生成](https://qilingtools.com/zh/uuid): 免费在线 UUID 生成器：使用加密安全随机数批量生成符合 RFC 4122 的 UUID v4，可大写、去连字符、加花括号，一键复制。
- [进制转换](https://qilingtools.com/zh/base-convert): 免费在线进制转换工具：二进制、八进制、十进制、十六进制及任意 2–36 进制互转，支持大整数（BigInt），本地实时计算。
