首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MailCatcher在虚拟机上不能与rbenv一起使用

MailCatcher在虚拟机上不能与rbenv一起使用
EN

Stack Overflow用户
提问于 2014-08-25 20:49:58
回答 4查看 1.8K关注 0票数 6

我在我的VM (VirtualBox)中安装了MailCatcher。但是,mailcatcher不工作,输出以下错误消息:

代码语言:javascript
运行
复制
`require': cannot load such file -- i18n/core_ext/string/interpolate (LoadError)

似乎i18n没有安装,但我安装了它。

代码语言:javascript
运行
复制
[vagrant@localhost ~]$ gem list i18n

*** LOCAL GEMS ***

i18n (0.7.0.beta1)

我在亚马逊网络服务的EC2中安装了和它一样的东西,它可以工作。

我的虚拟机中发生了什么?

-细节

操作系统: CentOS 6.5

Ruby: 2.1.1,rbenv 0.4.0

完整的错误消息:

代码语言:javascript
运行
复制
[vagrant@localhost ~]$ mailcatcher--http-ip 192.168.33.12
/home/vagrant/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- i18n/core_ext/string/interpolate (LoadError)
    from /home/vagrant/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /home/vagrant/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/activesupport-3.2.19/lib/active_support/core_ext/string/interpolation.rb:2:in `<top (required)>'
    from /home/vagrant/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /home/vagrant/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /home/vagrant/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/activesupport-3.2.19/lib/active_support/core_ext/string.rb:9:in `<top (required)>'
    from /home/vagrant/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /home/vagrant/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /home/vagrant/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/activesupport-3.2.19/lib/active_support/core_ext.rb:2:in `block in <top (required)>'
    from /home/vagrant/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/activesupport-3.2.19/lib/active_support/core_ext.rb:1:in `each'
    from /home/vagrant/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/activesupport-3.2.19/lib/active_support/core_ext.rb:1:in `<top (required)>'
    from /home/vagrant/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /home/vagrant/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /home/vagrant/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/mailcatcher-0.5.12/lib/mail_catcher.rb:1:in `<top (required)>'
    from /home/vagrant/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /home/vagrant/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /home/vagrant/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/mailcatcher-0.5.12/bin/mailcatcher:3:in `<top (required)>'
    from /home/vagrant/.rbenv/versions/2.1.1/bin/mailcatcher:23:in `load'
    from /home/vagrant/.rbenv/versions/2.1.1/bin/mailcatcher:23:in `<main>'
EN

回答 4

Stack Overflow用户

发布于 2015-01-03 00:46:05

综合使用张贴的答案,以下是我想出的解决方案:

我的环境:

  • rbenv
  • rails 4.1.8
  • i18n (0.7.0.beta1)

我的问题:在我现有的rails项目文件夹中运行gem install mailcatcher之后,我运行了mailcatcher并得到:

‘’:无法加载这样的文件-- i18n/core_ext/string/interpolate (LoadError)

我不想在我现有的项目文件夹中更新i18n gem,因为我的项目中的一切都运行得很好。

根据@joostvanrijn的建议,我决定专门为MailCatcher创建一个单独的rails项目文件夹。我将文件夹命名为mailcatcher。在新创建的/mailcatcher文件夹中,我运行了gem install mailcatcher。然后我运行了gem update i18n,这让我找到了i18n-0.7.0。最后,我调用了mailcatcher,它运行得很顺利。

后来,我遇到了MailCatcher的另一个问题:

虽然我可以访问http://127.0.0.1:1080,但发送电子邮件将失败,并显示

已完成500内部服务器错误

Net::ReadTimeout (Net::ReadTimeout)

我试图通过转到http://127.0.0.1:1080并单击" quit“来退出MailCatcher,但这只会将我带到http://mailcatcher.me,而不是真正终止进程。

为了终止进程,我使用lsof -i -n -P | grep TCP查找在127.0.0.1:1025127.0.0.1:1080上运行的进程,并使用kill -9 PID

我从这篇Discourse post中了解到,Net::ReadTimeout是由于MailCatcher中的一个错误造成的,解决方法是使用mailcatcher -f在前台运行MailCatcher。这解决了我的问题,现在我可以毫无问题地“捕获”电子邮件了。耶!

票数 3
EN

Stack Overflow用户

发布于 2014-10-13 08:23:14

Rails4.2beta/activesupport 4.2.0.beta2依赖于i18n (< 0.8,>= 0.7.0.beta1)。

如果加载i18n的测试版gem,mailcatcher (0.5.12)会抛出你的错误。

如果您使用的不是Rails4.2beta版本,那么可以卸载beta版本

代码语言:javascript
运行
复制
gem uninstall i18n -v i18n-0.7.0.beta1

在gem的多个问题中都引用了这一点。

https://github.com/sj26/mailcatcher/issues/164

https://github.com/sj26/mailcatcher/issues/155

票数 2
EN

Stack Overflow用户

发布于 2014-11-27 17:42:01

对于任何使用rbenv遇到这个问题的人:我已经找到了一个解决方法。请确保您使用的ruby版本没有安装Rails4.2beta gem。(我有一个较旧的项目,我把它放入其中,从那里安装和运行mailcatcher没有任何问题。

您可能需要创建一个新文件夹(例如,名为" mailcatcher“),使用支持的版本创建一个.ruby版本,以便可以从那里运行mailcatcher

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25486365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档