Ruby 如何避免编译Gem时覆盖源代码?

Ruby 如何避免编译Gem时覆盖源代码?,ruby,windows,gem,64-bit,eventmachine,Ruby,Windows,Gem,64 Bit,Eventmachine,我正在尝试安装eventmachineGem,但是要想在Windowsx64上的Ruby 2.0上运行它 我曾尝试在Ruby build文件夹中修改Gem源代码,但每次运行Gem install eventmachine时,它都会覆盖我的更改。在命令行帮助中,似乎没有一种方法可以在不解压缩新源代码的情况下重建gem,但是可能有一种解决方法 有没有办法为这个Gem构建我的稍微调整过的源代码?不要那样安装Gem。相反,构建您自己的版本,并通过指定作为构建过程一部分生成的.gem文件的路径来安装该版本

我正在尝试安装
eventmachine
Gem,但是要想在Windowsx64上的Ruby 2.0上运行它

我曾尝试在Ruby build文件夹中修改Gem源代码,但每次运行
Gem install eventmachine
时,它都会覆盖我的更改。在命令行帮助中,似乎没有一种方法可以在不解压缩新源代码的情况下重建gem,但是可能有一种解决方法


有没有办法为这个Gem构建我的稍微调整过的源代码?

不要那样安装Gem。相反,构建您自己的版本,并通过指定作为构建过程一部分生成的
.gem
文件的路径来安装该版本


我发现最简单的方法是创建一个fork,在你的
Gemfile
中设置fork的
git
路径,然后
bundle install
,它将负责编译和正确安装这些东西。

好的,多亏了@tadman的帮助

最终只是从源代码本地安装,而不是调整由
gem
下载的官方源代码并防止其被覆盖。这些是确切的步骤

  • 从Github(或任何位置)本地克隆
  • 对源代码进行更改
  • 如果根目录中有
    .gempec
    文件
    • 在目录中打开终端并输入
      gem build GEMNAME.gempec
    • 最后输入
      gem安装GEMNAME-VERSION.gem
  • 如果没有
    .gempec
    但有一个名为“gem”或“build”或类似文件,那么您可能必须使用
    rake

您好,谢谢您的回复。我是Ruby的新手(我的电脑上只有运行AppFog客户端的软件)。我尝试创建一个名为
Gemfile
的文件,并将其包含在任意目录中。它包含
gem'eventmachine',:git=>'git://github.com/brendanarnold/eventmachine.git“
,然后在该目录中运行
gem install eventmachine
,但它似乎仍在下载官方源代码-我做错了什么吗?啊,我没有使用
捆绑包
我使用了
gem
,这可能会起作用——不过我用了另一种方式,谢谢!是的,我想说的是
gem安装
总是从规范源代码中提取,除非你给它一个本地
.gem
文件的路径
bundle安装
将执行您的
Gem文件
中规定的任何操作,包括自定义版本。顺便说一句,源代码编译并安装了Gem,但事实证明它在代码中实际使用时仍然不起作用。如果阅读本文的任何人试图在Windows x64上安装
eventmachine
,我发现最终切换到Ruby 1.9.3 32位并从那里开始工作会更容易-eventmachine立即编译,现在我可以运行AppFog客户端。。。