当我尝试启动Rails服务器时,出现以下错误:
celery -A FacebookAPICall worker --loglevel=info
我不明白为什么会这样,因为我同时使用Homebrew和rbenv将Ruby设置为2.3.8。 2.3.7是系统的ruby版本。我正在使用Mac OS 10.14.4。
$ bundle exec rails s
Your Ruby version is 2.3.7, but your Gemfile specified ~> 2.3.8
我在这里没有看到任何让我觉得应该使用2.3.7的东西。
我不确定还能尝试什么。
Bundler如何决定使用哪个版本的Ruby,以及如何配置它以使用rbenv或我的自制Ruby安装?
答案 0 :(得分:1)
总结:错误版本的打包程序导致了问题。使用 ruby 版本管理器安装所需的 ruby 版本。然后为您的项目安装正确版本的 bundler gem。
详细信息:就我而言,我正在 github 上运行一个 rails 示例,该示例需要旧版本的 ruby 和 bundler 并得到描述的错误。
为了管理不同的 ruby 版本,我使用了 ruby-install
和 chruby
,两者都安装了 homebrew。
我按照以下步骤解决了 macOS Catalina v10.15.7 上的问题:
% ruby-install 2.4.1
# open a new shell so chruby will find 2.4.1
% chruby 2.4.1
% which ruby
/Users/richardlogwood/.rubies/ruby-2.4.1/bin/ruby
% gem install bundler:1.16.1
% which bundle
/Users/richardlogwood/.gem/ruby/2.4.1/bin/bundle
% cd (to the rails project directory)
# Note: it's a rails project so there was a binstub
# for bundler, hence `bin/bundler` in the project directory*
% bin/bundler install
% rake db:{create,migrate}
% bin/rails s
在运行上述步骤之前,错误消息告诉我需要安装哪个版本的 ruby 和 bundler。系统捆绑器是错误的版本(我在 mac 上)并且使用该版本的初始错误消息给了我以下错误。只有在安装了所需的 bundler gem(见上文)后,正确的 ruby 版本才能解析(见上文)。
% bundle install
Your Ruby version is 2.6.3, but your Gemfile specified 2.4.1
% which ruby
/Users/richardlogwood/.rubies/ruby-2.4.1/bin/ruby
% which bundle
/usr/bin/bundle
请注意,此错误消息指示了所需的捆绑程序版本:
Could not find 'bundler' (1.16.1) required by your ... /Gemfile.lock. (Gem::GemNotFoundException)
To update to the latest version installed on your system, run `bundle update --bundler`.
To install the missing version, run `gem install bundler:1.16.1`
答案 1 :(得分:0)
如何安装您的捆绑软件版本? 我会尝试立即重新安装它,直到安装了想要的红宝石版本。
答案 2 :(得分:0)
如何尝试使用“ rvm”?
rvm install 2.4.2
此命令将安装另一个版本的ruby 2.4.2
您只需检查所有版本即可
rvm list
。
然后,运行以下所需的版本,
rvm <version>
或rvm use <version>
希望这对您有帮助!
答案 3 :(得分:0)
我不建议使用RVM代替RBEnv。 RBEnv是周围最新的解决方案之一,大多数人都坚持使用它。
能否请您先运行gem update --system
来更新捆绑程序。
答案 4 :(得分:0)
安装Rbenv并在项目目录中运行以下命令以安装2.3.8:
rbenv install 2.3.8
rbenv local 2.3.8
bundle install --path=vendor/cache