我正在尝试在共享主机上运行Ruby on Rails网站。当我按照本教程http://guides.rubyonrails.org/v2.3.8/getting_started.html进入rake db:create
(或rake
)时,我得到了
错误:'rake / rdoctask'已过时且不再受支持。使用'rdoc / task'(在RDoc 2.4.2+中可用)代替。
我尝试了gem install rdoc -v 2.4.2
(也按照ERROR: 'rake/rdoctask' is obsolete and no longer supported的建议尝试gem install rake --version 0.8.7
),但我的问题是我的托管服务提供商在系统上全局安装了其他版本,无论出于何种原因全局版本覆盖了本地版本。
我还尝试gem install bundler
尝试指定版本(按此处Use older version of Rake建议),但bundle
以
/usr/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:247:in`to_specs':在[actionmailer-2.3.15,actionpack-2.3.15]中找不到bundler(> = 0) ,activerecord-2.3.15,activerecord-mysql2-adapter-0.0.3,activeresource-2.3.15,activesupport-2.3.15,cgi_multipart_eof_fix-2.5.0,daemons-1.1.9,fastthread-1.0.7,gem_plugin-0.2 .3,mongrel-1.1.5,mysql2-0.3.11,rack-1.1.5,rails-2.3.15,rake-10.0.3,rubygems-update-1.8.25,sqlite3-1.3.7](Gem: :LoadError)
我的托管服务提供商没有安装RVM,这可能让我做了RVM doesn't set correct gem path这样的事情。
奇怪的是gem which rake
给了我
〜/红宝石/宝石/宝石/耙0.8.7 / LIB / rake.rb
(我隐藏的主页目录),但~/ruby/gems/gems/rake-0.8.7/bin/rake --version
给了我
rake,版本10.0.3
我得到了关于rdoc的类似结果,~/ruby/gems/gems/bundler-1.3.5/bin/bundle --version
给了我
/home/ko64eto/ruby/gems/gems/bundler-1.3.5/bin/bundle:7:in`requirement':没有要加载的文件 - bundler(LoadError) 来自/home/ko64eto/ruby/gems/gems/bundler-1.3.5/bin/bundle:7
我可以做些什么来解决rake vs rdoc冲突。我是否需要让我的托管服务提供商安装RVM或我可以做其他事情吗?如果我联系他们,是否有其他选择我可以要求他们(比如要求他们全局安装bundler,或者更新rdoc)?
答案 0 :(得分:0)
您使用的是什么版本的Rails?你能分享你的Gemfile吗?
如果您使用的是Rails 3.2.x,那么您可以尝试使用bundle install --deployment。您的托管服务提供商可能已经安装了捆绑包。是否安装了捆绑器?试试gem list bundler并告诉我你看到了什么。
如果安装了bundler,那么你想尝试捆绑exec rake db:setup或bundle exec rake db:create。然后bundler将在你的gemfile中使用rake的版本。