代码之家  ›  专栏  ›  技术社区  ›  James

升级到Ubuntu 18.04后出现Rails控制台错误

  •  11
  • James  · 技术社区  · 8 年前

    从ubuntu 16.04升级到ubuntu 18.04后,我在运行时收到以下错误 rails console 从rails项目的根目录。只有控制台似乎受到了影响,我可以毫无问题地启动puma服务器。

    Running via Spring preloader in process 23887
    /home/user/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `require': libreadline.so.6: cannot open shared object file: No such file or directory - /home/user/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/x86_64-linux/readline.so (LoadError)
        from /home/user/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `block in require'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:258:in `load_dependency'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `require'
        from /home/user/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/irb/completion.rb:10:in `<top (required)>'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `require'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `block in require'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:258:in `load_dependency'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `require'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/railties-5.1.6/lib/rails/commands/console/console_command.rb:2:in `<top (required)>'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `require'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `block in require'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:258:in `load_dependency'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `require'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/railties-5.1.6/lib/rails/command/behavior.rb:82:in `block (2 levels) in lookup'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/railties-5.1.6/lib/rails/command/behavior.rb:78:in `each'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/railties-5.1.6/lib/rails/command/behavior.rb:78:in `block in lookup'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/railties-5.1.6/lib/rails/command/behavior.rb:77:in `each'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/railties-5.1.6/lib/rails/command/behavior.rb:77:in `lookup'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/railties-5.1.6/lib/rails/command.rb:68:in `find_by_namespace'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/railties-5.1.6/lib/rails/command.rb:42:in `invoke'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/railties-5.1.6/lib/rails/commands.rb:16:in `<top (required)>'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `require'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `block in require'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:258:in `load_dependency'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `require'
        from /home/user/dev/projects/SRTrackerMySQL/bin/rails:9:in `<top (required)>'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:286:in `load'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:286:in `block in load'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:258:in `load_dependency'
        from /home/user/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:286:in `load'
        from /home/user/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:59:in `require'
        from /home/user/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:59:in `require'
        from -e:1:in `<main>'
    

    我已经跑了 bundle install 并在新的rails项目中进行了尝试 Rails 5.1.6 Rails 5.2

    我也试过跑步 RAILS_ENV=production bundle exec rails console

    我使用的是Ruby版本:

    ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
    
    6 回复  |  直到 8 年前
        1
  •  15
  •   Brian Samson    8 年前

    您需要确保已安装readline。您正在使用RVM,因此可以运行:

    rvm requirements

    它应该有助于确保您安装了所需的一切,然后:

    rvm reinstall 2.4.1

    如果需要确保你的红宝石很好用。

        2
  •  12
  •   kaydanzie    7 年前

    我有同样的问题,但我们使用 rbenv 而不是 rvm .与Brian的答案相似,我的答案是:

    rbenv uninstall 2.4.1
    rbenv install 2.4.1
    
        3
  •  4
  •   Augusto Carmo    6 年前

    在终端上运行以下代码为我解决了问题:

    cd /lib/x86_64-linux-gnu
    sudo ln -s libreadline.so.7.0 libreadline.so.6
    
        4
  •  2
  •   ADMAT Bandara    7 年前

    升级后我也有同样的问题。我猜RVM出现了问题。

    因此,首先卸载RVM。

    rvm implode
    

    然后,执行以下命令再次安装RVM

    sudo apt install gnupg2
    gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
    cd /tmp
    curl -sSL https://get.rvm.io -o rvm.sh
    less /tmp/rvm.sh
    cat /tmp/rvm.sh | bash -s stable --rails
    source /home/admat/.rvm/scripts/rvm
    

    重新加载RVM

    rvm reload
    

    安装ruby版本

    rvm install _version_
    

    使用bundle命令安装gems

    bundle install
    

    完成!!!!!

    如果您想了解有关将ruby安装到ubuntu 18.04的更多详细信息,请尝试以下链接 Install ruby on rails with Ubuntu 18.04

        5
  •  2
  •   Phil    6 年前

    重新安装Ruby和重新设置rbenv对我来说不起作用。最后,我选择了当前安装的简单符号链接 libreadline.so7

    locate libreadline.so
    

    这返回了一个完整的可能选项列表,但最可能有用的选项似乎是 /lib/x86_64-linux-gnu/libreadline.so.7

    sudo ln -s /lib/x86_64-linux-gnu/libreadline.so.7 /lib/x86_64-linux-gnu/libreadline.so.6
    

    链接后,我现在可以跑步了 rails console 和使用 byebug 再一次

        6
  •  1
  •   almawhoob    7 年前

    我也无法跑步 rails console 将Ubuntu从16.04升级到18.04之后。我得到了类似的结果:

    -bash: error while loading shared libraries: libreadline.so.6: cannot open shared object file: No such file or directory
    

    我必须按照此处发布的说明重新安装rvm: https://github.com/rvm/ubuntu_rvm

    推荐文章