【问题标题】:Creating a Gemfile with RVM使用 RVM 创建 Gemfile
【发布时间】:2011-07-24 01:42:01
【问题描述】:

我有一个 rails 2.3.8 应用程序。我刚刚安装了 RVM,显然一切正常(我创建了一个非常简单的 rails 项目来检查 rails 和 mysql 是否运行正常)。

我现在正在尝试创建一个 Gemfile……但我遇到了 Thinking-Sphinx 的问题。这是我的 Gemfile 的当前版本:

source :rubygems
source "http://rubygems.org"
source :rubyforge
source "http://gems.rubyforge.org"
source :gemcutter
source "http://gemcutter.org"

gem 'SystemTimer', :platforms => :ruby_18
gem "rails", "2.3.5"
# make sure to run "bundle config build.mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config" in terminal before running "bundle install" as per documentation in http://gembundler.com/man/bundle-config.1.html
gem "mysql"

gem "tlsmail"
gem 'delayed_job'
gem 'will_paginate', '~> 2.3.11'

gem "chronic"
gem "nokogiri"

gem "sphinx", '0.9.10.2122'
gem 'thinking-sphinx', '< 2.0.0', :require => 'thinking_sphinx'
gem 'ts-delayed-delta', :require => 'thinking_sphinx/deltas/delayed_delta'

gem "mini_magick"
gem "faker"
gem "populator"

gem "rspec"
gem "geokit"
gem "geokit-rails"

我的 Rakefile 是:

require 'thread'
require(File.join(File.dirname(__FILE__), 'config', 'boot'))

require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'

require 'tasks/rails'
require 'thinking_sphinx/tasks'
require 'thinking_sphinx/deltas/delayed_delta/tasks'

begin
  gem 'delayed_job', '~>2.0.3'
  require 'delayed/tasks'
rescue LoadError
  STDERR.puts "Run `rake gems:install` to install delayed_job"
end

当我跑步时

rake ts:config

我收到以下错误消息:

rake/rdoctask is deprecated.  Use rdoc/task instead (in RDoc 2.4.2+)

Sphinx cannot be found on your system. You may need to configure the following
settings in your config/sphinx.yml file:
  * bin_path
  * searchd_binary_name
  * indexer_binary_name


For more information, read the documentation:
http://freelancing-god.github.com/ts/en/advanced_config.html          

Generating Configuration to /Users/alex/Sites/myproject/config/development.sphinx.conf
rake aborted!
uninitialized constant ThinkingSphinx::Deltas::DelayedDelta

Tasks: TOP => ts:config => thinking_sphinx:configure
(See full trace by running task with --trace)

我已经尝试了几个小时不同的事情,但找不到解决问题的方法...希望得到帮助!

【问题讨论】:

  • 你的Gemfile.lock文件的内容是什么?

标签: ruby-on-rails rvm bundler thinking-sphinx


【解决方案1】:

试试bundle exec rake ts:config

这将使用您在 Gemfile 中指定的版本。

【讨论】:

  • 哎哟!!!原来我忘了在我的新机器上安装 Sphinx!......现在我得到的消息是:“未初始化的常量 ThinkingSphinx::Deltas::DelayedDelta /Users/alex/.rvm/gems/ruby-1.8.7-p174 /gems/activesupport-2.3.5/lib/active_support/dependencies.rb:440:in load_missing_constant' /Users/alex/.rvm/gems/ruby-1.8.7-p174/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:80:in const_missing' /Users/alex/.rvm/gems/ruby-1.8.7-p174/gems/thinking-sphinx-1.4 .3/lib/thinking_sphinx/deltas.rb:11:in `parse'"。
  • 好吧,那你知道该怎么做了! :)
  • 由于某种原因,我似乎必须将“config.gem 'ts-delayed-delta',:lib...”留在我的 environment.rb 文件中。正常吗?
【解决方案2】:

我的建议是不要使用 RVM。这是个好主意,但执行不力。如果您像我一样需要多个 ruby​​ 版本,只需为每个版本创建别名就不会那么麻烦了。

RVM 有时会导致问题,而使用别名则不会。

【讨论】:

  • 这不是一个有用的答案吗?解决了他的问题,以后不会再有类似的事情发生了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-20
  • 1970-01-01
  • 1970-01-01
  • 2015-08-02
  • 1970-01-01
相关资源
最近更新 更多