1

我正在使用 Rake 构建一个大型 .NET 项目。我们将 Ruby 环境提交给我们的源代码控制,并将 gem 安装到这个“本地”环境(如 Albacore、Nokogiri 等)。我们基本上是按照这个指南,使用 RubyInstaller for Windows zip 包

trunk/
  source/
  packages/
  ruby/          <-- ruby here!
  build.bat      <-- helper scripts (call Ruby/rake)
  Solution.sln

但是,我们的源代码控制服务器是远程托管的,在虚拟机上,链接速度很慢。我读到有些人已经精简了 Ruby 环境,比如在Machine.Specifications 项目中。但是,这看起来很极端!(那里甚至有宝石支持吗?)

我可以开始删除文件和目录,看看有什么用,但必须有一些已知的文件集可以删除,并且仍然支持基本的 Ruby、Rake 和 gems?

4

1 回答 1

0

从我自己的实验和调查来看,很难确定什么是“必需的”,什么是可选的。有些文件看起来非常安全且易于删除,而有些文件我不想玩。我在下面的结果只节省了大约 5 MB... 可能根本不足以保证这样做。

ruby/bin目录包含许多批处理脚本,这些脚本只是帮助ruby使用正确的“应用程序”调用可执行文件,如 Rake 或 Gem。例如,rake.bat包含这一行

@"%~dp0ruby.exe" "%~dpn0" %*

您可以在脚本中用正确的命令替换build.bat它(假设它比 ruby​​ 环境“上”一级,可能在解决方案根目录)

@"%~dp0ruby\bin\ruby.exe" "%~dp0ruby\bin\rake" %*

您可以转储其余的批处理脚本,但是在将 gem 安装到本地环境中时会遇到一些麻烦。

cmd> ruby\bin\ruby.exe ruby\bin\gem install <whatever>

而且,从 Ruby 1.9.3 开始,这只为您节省了 1.38KB。我确信可以删除此目录中的其他一些非扩展文件,但是,在不知道它们的作用的情况下,继续进行是不安全的。

包括 (175 KB)

ruby/include目录似乎只包含用于针对 Ruby 进行开发的 C 头文件(我在此提供支持)。我删除了它,一切都运行良好。

库/tcltk (4.7 MB)

ruby/lib/tcltk看起来很像包含目录,但用于 Tcl 编程。

库/红宝石

ruby/lib/ruby目录包含此安装的 gem 和更多可怕的东西。除非您想无意中削弱您的环境,否则我会远离此目录。

分享 (27 KB)

ruby/share目录似乎只包含帮助页面,转储它们!

于 2012-08-22T16:13:39.043 回答