Nik*_*iko 7 ruby bundle ruby-on-rails rbenv
我想跑
env RAILS_ENV=test bundle exec rake db:migrate
并得到以下错误
Your Ruby version is 2.1.7, but your Gemfile specified 2.2.3
ruby -v
给我
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin15]
我正在使用rbenv,如果这很重要的话.rbenv versions给出以下内容:
system
* 2.2.3 (set by /Users/thatsme/Projects/demoproject/.ruby-version)
所以我没有ruby 2.1.7安装.Spring没有运行而且我已经运行了rbenv rehash.然后bundler gem安装.我对此很疯狂.有人可以告诉我为什么使用错误的ruby版本?谢谢!
Ric*_*een 17
运行下面的命令以某种方式帮助了我:
rbenv exec gem install bundler
假设:您正在使用 RVM。这意味着在 RVM 之外安装了一个 ruby 版本。通过运行清除您的 rvm rubies
rvm uninstall <ruby version>
Run Code Online (Sandbox Code Playgroud)
一旦您卸载了所有 rvm rubies do ruby -v,如果这返回指定 ruby 版本的输出,那么这就是问题的根源。卸载它
sudo apt-get remove ruby
Run Code Online (Sandbox Code Playgroud)
现在安装您的 rvm rubiesrvm install <ruby version>并将其设置为默认值rvm use <ruby version>
现在安装捆绑器
gem install bundler
Run Code Online (Sandbox Code Playgroud)
并且做 bundle install
太长了;
.bash_profile非常仔细地检查您的文件或文件的内容.bashrc。
所有答案都没有真正解决我的问题。这是我的解决方案。
这是我得到的错误:
$ bundle install
Your Ruby version is 3.0.1, but your Gemfile specified 2.7.1
Run Code Online (Sandbox Code Playgroud)
我检查了我的rbenv设置:
$ rbenv versions
system
2.4.1
2.5.0
2.7.0
* 2.7.1 (set by /Users/setoelka/awesome-project/.ruby-version)
3.0.1
Run Code Online (Sandbox Code Playgroud)
我卸载了错误的版本,可能会发现新的错误。我想,我可以稍后再安装它。
$ rbenv uninstall 3.0.1
Run Code Online (Sandbox Code Playgroud)
它确实揭示了一个新错误:
$ bundle install
-bash: /Users/setoelka/.gem/ruby/3.0.0/bin/bundle: /Users/setoelka/.rbenv/versions/3.0.1/bin/ruby: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)
好吧,这很奇怪。我可以删除.gem那里的目录。
$ rm -rf ~/.gem/
Run Code Online (Sandbox Code Playgroud)
现在另一个新错误:
$ bundle install
-bash: /Users/setoelka/.gem/ruby/3.0.0/bin/bundle: No such file or directory
Run Code Online (Sandbox Code Playgroud)
看来我的 PATH 变量搞砸了。所以我这样做:
$ gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 3.2.27
- RUBY VERSION: 2.7.1 (2020-03-31 patchlevel 83) [x86_64-darwin20]
- INSTALLATION DIRECTORY: /Users/setoelka/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0
- USER INSTALLATION DIRECTORY: /Users/setoelka/.local/share/gem/ruby/2.7.0
- RUBY EXECUTABLE: /Users/setoelka/.rbenv/versions/2.7.1/bin/ruby
- GIT EXECUTABLE: /usr/bin/git
- EXECUTABLE DIRECTORY: /Users/setoelka/.rbenv/versions/2.7.1/bin
- SPEC CACHE DIRECTORY: /Users/setoelka/.local/share/gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /Users/setoelka/.rbenv/versions/2.7.1/etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-20
- GEM PATHS:
- /Users/setoelka/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0
- /Users/setoelka/.local/share/gem/ruby/2.7.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /Users/setoelka/.rbenv/versions/2.7.1/bin
- /usr/local/Cellar/rbenv/1.1.2/libexec
- /Users/setoelka/opt/anaconda3/bin
- /Users/setoelka/opt/anaconda3/condabin
- /Users/setoelka/.cargo/bin
- /Users/setoelka/.gem/ruby/3.0.0/bin
- /Users/setoelka/.nvm/versions/node/v16.5.0/bin
- /Users/setoelka/.rbenv/shims
- /Users/setoelka/.rbenv/shims
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
- /Library/Apple/usr/bin
Run Code Online (Sandbox Code Playgroud)
所以,很明显我在检查我的.bash_profile文件时错过了一些东西。这就是问题所在:
- /Users/setoelka/.gem/ruby/3.0.0/bin
Run Code Online (Sandbox Code Playgroud)
这条线不知何故被埋在我的.bash_profile.
| 归档时间: |
|
| 查看次数: |
6564 次 |
| 最近记录: |