簡體   English   中英

無法在本地運行 rails server 錯誤的 ruby 版本

[英]Cannot run rails server locally wrong ruby version

我最近使用 rbenv 安裝了 ruby 2.7.1。 我確保.ruby-version和 Gemfile 文件都有 2.7.1 作為 ruby 版本。 現在我無法在本地運行 rails s,這樣做會在控制台中返回以下 output:

警告:Bundler (2.1.2) 的運行版本比創建鎖定文件的版本 (2.1.4) 舊。 我們建議您通過運行gem install bundler:2.1.4升級到創建鎖定文件的版本。
你的 Ruby 版本是 2.7.0,但是你的 Gemfile 指定了 2.7.1

幾個小時以來,我一直在搜索和嘗試不同的東西,但無法找出問題所在,非常感謝您的幫助。

關注 output 可能有助於解決問題:

  1. curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash

rbenv' in PATH: /usr/bin/rbenv Checking for rbenv shims in PATH: OK Checking 20200819)
計算已安裝的 Ruby 個版本:1 個版本
檢查 RubyGems 設置:OK
審核安裝的插件:OK

  1. bundle env

環境

Bundler       2.1.4
  Platforms   ruby, x86_64-linux
Ruby          2.7.1p83 (2020-03-31 revision a0c7c23c9cec0d0ffcba012279cd652d28ad5bf3) [x86_64-linux]
  Full Path   /home/imran/.rbenv/versions/2.7.1/bin/ruby
  Config Dir  /home/imran/.rbenv/versions/2.7.1/etc
RubyGems      3.1.2
  Gem Home    /home/imran/.gem/ruby/2.7.0
  Gem Path    /home/imran/.gem/ruby/2.7.0:/home/imran/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0
  User Home   /home/imran
  User Path   /home/imran/.gem/ruby/2.7.0
  Bin Dir     /home/imran/.gem/ruby/2.7.0/bin
Tools         
  Git         2.25.1
  RVM         not installed
  rbenv       rbenv 1.1.1
  chruby      not installed

Bundler 構建元數據

Built At          2020-01-05
Git SHA           32a4159325
Released Version  true
  1. gem env

RubyGems 環境:

  • RUBYGEMS 版本:3.1.2
  • RUBY 版本:2.7.1(2020-03-31 補丁級別 83)[x86_64-linux]
  • 安裝目錄:/home/imran/.gem/ruby/2.7.0
  • 用戶安裝目錄:/home/imran/.gem/ruby/2.7.0
  • RUBY 可執行文件:/home/imran/.rbenv/versions/2.7.1/bin/ruby
  • GIT 可執行文件:/usr/bin/git
  • 可執行目錄:/home/imran/.gem/ruby/2.7.0/bin
  • 規格緩存目錄:/home/imran/.gem/specs
  • 系統配置目錄:/home/imran/.rbenv/versions/2.7.1/etc
  • RUBYGEMS 平台:
    • ruby
    • x86_64-linux
  • 創業板路徑:
    • /home/imran/.gem/ruby/2.7.0
    • /home/imran/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0
  • 寶石配置:
    • :update_sources => 真
    • :詳細=>真
    • :回溯=>假
    • :bulk_threshold => 1000
  • 遠程資源:
  • SHELL 路徑:
    • /home/imran/.rbenv/versions/2.7.1/bin
    • /usr/lib/rbenv/libexec
    • /home/imran/.rbenv/plugins/ruby-build/bin
    • /home/imran/.rbenv/bin
    • /home/imran/.rbenv/墊片
    • /home/imran/.rbenv/plugins/ruby-build/bin
    • /home/imran/.rbenv/bin
    • /home/imran/.local/bin
    • /家/伊姆蘭/斌
    • /usr/本地/sbin
    • /usr/本地/bin
    • /usr/sbin
    • /usr/bin
    • /sbin
    • /垃圾桶
    • /usr/游戲
    • /usr/本地/游戲
    • /快照/垃圾桶
    • /usr/local/texlive/2018/bin/x86_64-linux
  1. 我的~/.profile包含以下語句:

    導出 PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"
    export GEM_HOME="$(ruby -e 'puts Gem.user_dir')"
    導出 PATH="$HOME/.rbenv/bin:$PATH"

您是否嘗試只更新 bundler 作為輸出說:

gem install bundler:2.1.4

或者

gem install bundler
bundle update

rbenv根據您安裝的 ruby 版本創建墊片。 每次您通過rbenv global XYZrbenv local ABC更改 ruby 版本時,rbenv 將攔截 ruby 命令並將其重定向到適當的 ruby 安裝版本,該版本將查看其關聯的 gem。

因此,如果您將本地版本設置為2.7.1 ,並且您收到的錯誤消息告訴您您的捆綁包版本不同,則您可能沒有在2.7.1 Ruby shim 中安裝bundler器 gem。

要解決此問題,您可以更改 ruby 版本並安裝 gem:

rbenv local 2.7.1
ruby -v
# 2.7.1
gem install bundler

現在,確保在bundler中使用與安裝的捆綁器 gem 相同的捆綁器版本。 如果不是,則意味着Gemfile.lock文件已生成並與以前的版本捆綁在一起。 您可以通過刪除和重建來強制更新Gemfile.lock ,但是,如果您正在與其他開發人員合作,您可能希望在您這樣做之前與他們交談(並提交源代碼控制)

#Gemfile.lock

BUNDLED_WITH 2.1.5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM