本文为归档内容,原始地址在 博客园.

注意:对于协议有个大概的了解就行了,本文叙述不是很标准,如果要做具体了解,请戳文中给出的链接。


关于开源协议网上有很多说明,不过写的都十分晦涩,让人木有读下去的欲望,下面给大家简单的科普一下。


一般很少人关注代码开源的协议说明,我们平时看到的 MIT Apache BSD 等,一堆英文的缩写,也懒得去看具体的内容,这说明你的维权意识还不是很强。辛辛苦苦写了一堆代码,贴到某个分享区,啪一下被人家复制走了,然后别人改个名字,捎带加个协议,说是自己写的,一般情况下这种事情的发生我们可以忽视之,当如果这串代码被人家作为商用,成为挣钱利器,那个时候你后悔也来不及了。


目前市面上看到的协议种类还是挺繁多的,同一种协议可能还有几个版本,每个版本之间存在细微的差异,如何给自己的代码添加合适的协议?太宽松了,自己劳动成果容易被人家窃取;太苛刻了,人家也不想用你的东西。


1. 如果你想使用一个简单不那么麻烦的协议,可以选择 MIT


别人需要注意什么呢?署上你的大名,就可以带走你的代码了。你不用为他项目中因使用你的代码出现的问题承担任何责任。


2. 如果你顾及到专利,可以选择 Apache


可能代码中的某个技术或者创新点,你申请了专利,使用这个协议可以保护你专利的一些权力,简单点说就是让别人免费使用你这专利中的东西。


3. 如果你很在意别人对你代码的修改,希望分享并得到促进,可以选择 GPL


GPL 分为两个版本一个是 V2,一个是 V3,作品带上这个协议之后,别人想分享的话也得加上这个协议,对代码作出比较大的更改也是需要附带说明的。


上面提到的几个是比较常见的,也提一下其他几个。



  • LGPL 在GPL前面多了个 L,内容和 GPL 差不多,适合一些代码库或者框架使用。

  • BSD 也有两个版本,类似 MIT

  • No License 注意,这可不是没有版权声明,只是作者保留版权(包括分发,复制或者创造衍生物),只是你分享的时候允许分享平台附带的一些操作。如代码扔到 gitlab 上,就表示你允许别人查看并且 fork 你的代码。

  • Public domain dedication 这玩意儿才是不保留版权,也就是版权自由(Copy Left),跟保留版权(Copy Right)是相对的。基本就是放弃对这段代码的任何权利,可以自由使用。他和不声明版权的区别就是,告诉别人,兄弟,我这代码是没版权的,你随便使用~


如果还想具体了解其他相关的知识,请直接去http://choosealicense.com/,这里有最权威最全面的的说明。


汉化版地址:http://choosealicense.gitcafe.com/