Can you Distribute a Ruby on Rails Application without Source?我想知道是否可以在没有源代码的情况下分发RoR应用程序供生产使用?我看过有关SO的帖子,但我的处境略有不同。这将是一个有一些线索的人管理的应用程序,因此我很酷,仍然需要在客户端上安装Apache / Mongrel / MySQL。我真正想要的只是保护源。编码似乎是分发PHP应用程序(例如Helpspot)的一种流行方法。 我已经找到了以下可能的解决方案:
我听说可能使用JRuby并分发字节码可能是实现此目的的一种方法,但是我从未使用过JRuby,所以我不确定所涉及的内容。 任何人都可以提供任何想法和/或已知示例吗?理想情况下,我也希望拥有某种自动构建方案。 您当前最好的选择是使用JRuby。背景知识:我的公司(BitRock)与许多专有和商业开源供应商合作。我们帮助他们将通常基于PHP,Java或Ruby以及网络服务器或应用程序服务器(Apache,Tomcat),语言运行时和数据库(通常为Postgres,MySQL)的服务器软件打包到一个独立的,易于使用的安装程序。我们有很多基于PHP的客户(包括您提到的HelpSpot),还有几个基于Rails的客户。对于RoR客户,规范是将JRuby与Tomcat或Glassfish一起使用,尽管在某些情况下,我们还捆绑了本机Ruby解释器来运行依赖于尚未移植到JRuby的库的特定脚本(通常不是应用程序的核心) 。 JRuby已经迅速成熟,在许多情况下,它实际上比常规Ruby更快地运行其代码。您还需要考虑,尽管将代码移植到JRuby非常简单,但是您将需要花一些时间。您可能想要检查JRuby Stack,它是您入门所需的一切的免费安装程序。祝你好运! 如果您发布源代码(混淆或以其他方式混淆),则您的应用将被盗版。参见例如薄荷。这取决于您要构建的内容,但您可能会发现最好以多种混合形式发布该应用程序:具有明确定义的API的托管应用程序,以及在客户服务器上运行的组件。只要您产品的真正价值存在于服务器端,就无需混淆代码,您只需发布未经修改的源代码即可。此外,这也可能使您有机会接触正在运行PHP(而不是Ruby)的客户端。例如,参见Google Analytics,HopToad,Scout等。 如果您不能等待RubyEncoder的交付,那么我认为ZenObfuscate是最有前途的。尽管可能需要对您的源代码进行一些修改,但他们确实在其站点上这样说:
当然,对于2500美元(或更多),您希望对编译器进行一些调整,以使您的代码库得到完全支持。让他们参与对话可能是值得的。 您可以,但是它不会做任何事情来防止有人对它进行反向工程或修改。我记得有一篇文章介绍过类似的混淆Perl的尝试,以及调试器和5分钟的工作量如何有效地绕过它们。 您也可以看一下ThoughtWorks工作室的Mingle,作为使用JRuby的示例。 我想知道您是否可以使用RubyScript2Exe之类的代码将Ruby代码"编译"为可执行文件? 说实话,我还没有使用过它,但似乎它就是您想要的,即使它只是将带有解释器的脚本打包到一个可执行文件中。 看看JumpBox。 我已经与他们就该主题进行了交谈,他们似乎有一个可以很快在Rails应用程序中使用的解决方案。 |