Rails 升级到 Ubuntu 18.04 后出现控制台错误
Rails Console error after upgrading to Ubuntu 18.04
从 ubuntu 16.04 升级到 ubuntu 18.04 后,当从 rails 项目的根目录 运行ning rails console
时,我收到以下错误.只有控制台似乎受到影响,我可以毫无问题地启动 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]
您需要确保已安装 readline。您正在使用 RVM,因此您可以 运行:
rvm requirements
它应该有助于确保您已安装所需的一切,然后是:
rvm reinstall 2.4.1
如果需要确保您的 ruby 一切顺利。
从 Ubuntu 从 16.04 升级到 18.04 后,我也无法 运行 rails console
。我得到了类似的东西:
-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
我遇到了完全相同的问题,但我们使用 rbenv
而不是 rvm
。与 Brian 类似的答案对我有用:
rbenv uninstall 2.4.1
rbenv install 2.4.1
升级后我遇到了同样的问题。我的猜测是 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 的更多详细信息,请尝试以下 link
Install ruby on rails with Ubuntu 18.04
重新安装 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
。
运行 终端上的以下代码为我解决了问题:
cd /lib/x86_64-linux-gnu
sudo ln -s libreadline.so.7.0 libreadline.so.6
从 ubuntu 16.04 升级到 ubuntu 18.04 后,当从 rails 项目的根目录 运行ning rails console
时,我收到以下错误.只有控制台似乎受到影响,我可以毫无问题地启动 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]
您需要确保已安装 readline。您正在使用 RVM,因此您可以 运行:
rvm requirements
它应该有助于确保您已安装所需的一切,然后是:
rvm reinstall 2.4.1
如果需要确保您的 ruby 一切顺利。
从 Ubuntu 从 16.04 升级到 18.04 后,我也无法 运行 rails console
。我得到了类似的东西:
-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
我遇到了完全相同的问题,但我们使用 rbenv
而不是 rvm
。与 Brian 类似的答案对我有用:
rbenv uninstall 2.4.1
rbenv install 2.4.1
升级后我遇到了同样的问题。我的猜测是 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 的更多详细信息,请尝试以下 link Install ruby on rails with Ubuntu 18.04
重新安装 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
。
运行 终端上的以下代码为我解决了问题:
cd /lib/x86_64-linux-gnu
sudo ln -s libreadline.so.7.0 libreadline.so.6