我想知道有人怎么可能在 Ubuntu 下制作非自由的应用程序。
作为一名开源程序员,我发现,即使是最简单的程序,我也会使用开源库,因此我可以合法地使用它们除非我的程序将是免费和开源的。
所以,我想知道,为了开发非免费应用程序,您是否需要自己编写要使用的所有库,并且不能有开源依赖项等?
答案1
事实并非如此。只有 GPL 许可证和一些相关许可证是“版权左翼“,迫使你开源基于GPL软件构建的软件。但是,你可以自由使用例如LGPL库。事实上,LGPL 就是专门为这个目标而创建的——使用共享的开源 LGPL 库创建闭源应用程序。此外,在 BSD 或类似 BSD 的许可证(例如 Python)下,您基本上可以按原样使用它并对其进行任何您想做的事情。
换句话说,开源并不强制开源。此外,开源并不意味着“免费”。你完全可以对开源程序收费,或者创建一个开源程序,但在出售数据(如与该程序相关的媒体文件或资源)时要求付费。
把它们加起来:
- 类似 BSD 的许可证允许您根据需要自由修改和分发代码;
- LGPL(较小 GNU 公共许可证)允许创建链接到开源共享库的专有代码。例如,整个 glibc 都是 LGPL;
- GPL 许可证强制您根据 GPL 分发对 GPL 程序的任何修改。
因此,您可以愉快地编写您的程序,将其链接到各种各样的库,甚至直接合并外来代码片段,对其进行编译并将其作为专有的闭源程序出售,只要您不分发修改后的 GPL 程序即可。