使用开源时必须注意的事项

Linda Hamilton
发布: 2024-10-23 17:58:45
原创
788 人浏览过

Must Notes When Using Open Sources

1. 关于许可

构建新应用程序时,利用开源的服务。我们必须注意的最重要的事情之一是许可证,尤其是当我们构建闭源专有应用程序时。

举个例子。假设我们正在尝试为我们的新服务选择合适的 RDMBS。在潜在的选择中,一些突出的可能是 MySQL 和 PostgreSQL。考虑到他们的许可,我们得到了以下注释。

  1. MySQL 许可证

    • MySQL 根据 - GNU 通用公共许可证 (GPL) 免费用于商业用途。这意味着您可以免费使用、修改和分发 MySQL 只要您的应用程序也是 - 开源* 且符合 GPL 许可条款。
    • 但是,如果您想将 MySQL 集成到闭源专有 应用程序中,您可能需要 Oracle 的商业许可证(拥有 MySQL 的公司)以避免 GPL 的义务,例如发布您的源代码。
    • 总而言之,对于 MySQL,我们只有当我们开源我们的依赖项目时才能免费使用它,否则我们必须有一个Oracle 的许可证
  2. PostgreSQL 许可证

    • PostgreSQL 可免费在闭源应用程序中使用。它是在PostgreSQL许可证下发布的,这与MIT许可证非常相似。 这意味着:
    • 您可以使用、修改和分发 PostgreSQL 而无需支付任何费用。
    • 您可以将 PostgreSQL 作为专有闭源应用程序的一部分而无需发布应用程序的源代码。
    • 许可证不要求您开源您的软件(如果您使用 PostgreSQL 作为软件的一部分)。
    • PostgreSQL 被认为是一个宽容的开源数据库,使其成为开源和专有软件的绝佳选择。

2. 一些常见的软件许可证

以下是一些最常见的软件许可证,包括开源和商业许可证:

  1. 麻省理工学院许可证

    • 类型:宽容
    • 主要功能:允许用户使用、复制、修改、合并、发布、分发、再许可和销售软件副本。
    • 限制:需要归属(即保留原始许可和版权声明)。
  2. GNU 通用公共许可证 (GPL)

    • 类型:Copyleft
    • 主要功能:用户可以在同一许可证下使用、修改和分发软件。
    • 限制:要求衍生作品在同一 GPL 许可证下获得许可。用户在分发软件时必须提供源代码。
  3. Apache 许可证 2.0

    • 类型:宽容
    • 主要功能:允许用户使用、修改和分发软件,并明确授予专利权。
    • 限制:需要归属和许可证副本,以及任何修改的通知。
  4. BSD 许可证(2 条款和 3 条款)

    • 类型:宽容
    • 主要功能:允许用户使用、修改和分发软件。
    • 限制:需要归属。 3 条款 BSD 许可证还包含一项条款,禁止使用项目或贡献者的名称进行推广。
  5. Mozilla 公共许可证 (MPL) 2.0

    • 类型:弱 Copyleft
    • 主要功能:允许用户使用、修改和分发软件,但对 MPL 覆盖的代码的修改必须在同一许可证下可用。
    • 限制:源代码更改必须在 MPL 下共享,但可以与其他专有或许可代码结合。
  6. 知识共享许可证(CC0、BY、BY-SA)

    • 类型:变化(公共领域、许可、copyleft)
    • 主要功能:更常用于文档或图像等创意作品,而不是软件。 CC0 是公共领域奉献,而 BY 需要归属。
    • 限制:根据许可证类型而变化; BY-SA 要求衍生作品使用相同的许可证。
  7. Eclipse 公共许可证 (EPL)

    • 类型:弱 Copyleft
    • 主要功能:与 MPL 类似,它允许使用、修改和分发,但要求修改后的文件保留在 EPL 下。
    • 限制:如果分发,修改必须是开源的,但可以与专有软件结合。
  8. 专有许可证

    • 示例:Microsoft 软件许可证、Adobe 最终用户许可协议 (EULA)
    • 类型:商业/专有
    • 主要功能:允许在公司定义的特定条件下使用该软件。
    • 限制:用户不能修改、分发,有时甚至不能检查软件的源代码。
  9. 公共领域(例如无许可证、CC0)

    • 类型:公共领域奉献
    • 主要功能:将软件置于公共领域,允许任何人不受限制地使用、修改或分发。
    • 限制:无,但不适合需要一定程度的保护或归属的项目。
  10. GNU 较宽松通用公共许可证 (LGPL)

    • 类型:弱 Copyleft
    • 主要功能:允许软件链接到专有软件,只要对 LGPL 许可的组件本身的修改是开源的。
    • 限制:需要对 LGPL 库进行修改才能使用,但允许与闭源软件链接。

这些许可证在处理分发、修改和归属要求的方式上有所不同,提供不同程度的自由度和限制。

3. 闭源专有应用程序的许可证。

对于闭源专有应用程序不要求披露您的源代码的许可 合适。用于此目的的一些常见许可证包括:

  1. MIT 许可证:虽然主要用于开源项目,但它允许其他人自由使用、修改和分发软件,即使在专有应用程序中也是如此,而无需披露其源代码.

  2. Apache License 2.0:与 MIT 许可证类似,它允许在闭源项目中使用,并具有额外的专利保护。它不需要分发源代码。

否则您将必须为以下许可证之一付费。

  1. 专有许可证:您可以从 Oracle(适用于 MySQL)等供应商购买专有许可证,这允许您以闭源方式使用他们的软件。

  2. 商业许可证:许多公司提供明确允许闭源使用的商业许可证,并且可能包括其他支持或功能。

以上是使用开源时必须注意的事项的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!