更新说明:对文章排版以及内容格式做了调整。
更新时间:2022-05-04

Github上新建项目的时候,会让添加开源许可证,一搬情况下我们自己建项目的时候:Add a licence:None,即:不添加许可证。
刚开始的时候我们都不会在意这个许可证到底是什么,但是随着项目专业、职业化,我们一定要对开源许可证有个清楚的了解。
那么,现在就动脑、动手记录一下关于开源许可证的小介绍。

分析图

乌克兰程序员Paul Bagwell,画了一张分析图,说明应该怎么选择。只用两分钟,你就能搞清楚这六种许可证之间的最大区别。
下面的图片是来自阮一峰博客制作的中文版,请点击看大图。

licence

这里介绍的是最流行的五种开源许可证: MIT BSD Apache GPL LGPL

MIT

非常宽松的许可证,就是说你什么都可以干,但是开发方不负责质量,相当于免责声明。
MIT内容与三条款BSD许可证(3-clause BSD license)内容颇为近似,但是赋予软件被授权人更大的权利与更少的限制。
应用该许可证的项目:jQuery Rails Express Lua等

BSD

也是宽松的协议,但比起MIT,BSD不允许软件的衍生版用原作者名字促销,BSD依然是一个免责声明,与MIT相比差异很少。
Javascript常用BSD许可协议。因为javascript库很多,替代品也多。作者要做的仅仅是免责而已。

Apache

Apache的许可很长,比BSD和MIT要严格不少,需要保留全部的原始版权,如果修改,则需要加上主要的修改通知。

GPL

GPL是常用许可协议中最严格的。
GPL最最重要的一条就是GPL的衍生品也必须是GPL协议,也就是说GPL协议发布的软件,其后继版本将都是GPL.
Linux就是GPL。

LGPL

GPL过于严格,于是GUN发布了LGPL这个限制较少的许可证。
LGPL和GPL最大的不同是LGPL允许在私有软件上使用它,而GPL只允许在自由软件上使用。
如果你使用一个LGPL下的库,你需要遵循LGOL,如果仅仅是连接这个库,则不需要遵循LGPL。