Nach dem Upgrade von Ubuntu 16.04 auf Ubuntu 18.04 wird beim Ausführen von rails console aus dem Stammverzeichnis des Rails-Projekts die folgende Fehlermeldung angezeigt. Nur die Konsole scheint betroffen zu sein, ich kann den Puma-Server ohne Probleme starten.

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>'

Ich habe bundle install ausgeführt und es mit neuen Rails-Projekten mit Rails 5.1.6 und Rails 5.2 versucht.

Ich habe auch versucht, RAILS_ENV=production bundle exec rails console auszuführen

Ich verwende die Ruby-Version:

ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
10
James 19 Apr. 2018 im 03:15

6 Antworten

Beste Antwort

Sie müssen sicherstellen, dass readline installiert ist. Sie verwenden RVM, damit Sie Folgendes ausführen können:

rvm requirements

Und es sollte helfen, sicherzustellen, dass Sie alles installiert haben, was Sie benötigen, gefolgt von:

rvm reinstall 2.4.1

Wenn nötig, um sicherzustellen, dass Ihr Rubin gut zu gehen ist.

11
Brian Samson 19 Apr. 2018 im 02:27

Ich hatte genau das gleiche Problem, aber wir verwenden rbenv anstelle von rvm. Eine ähnliche Antwort auf Brian's arbeitete für mich:

rbenv uninstall 2.4.1
rbenv install 2.4.1
10
kaydanzie 7 Sept. 2018 im 23:01

Ich hatte das gleiche Problem nach dem Upgrade. Ich vermute, das Problem tritt bei der RVM auf.

Deinstallieren Sie also zuerst die RVM.

rvm implode

Führen Sie dann die folgenden Befehle aus, um die RVM erneut zu installieren

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

Laden Sie die RVM neu

rvm reload

Installieren Sie Ihre Ruby-Version

rvm install _version_

Verwenden Sie den Bundle-Befehl, um Edelsteine ​​zu installieren

bundle install

GETAN !!!!!

Wenn Sie weitere Informationen zur Installation von Ruby auf Ubuntu 18.04 wünschen, klicken Sie auf den folgenden Link Installieren Sie Ruby auf Schienen mit Ubuntu 18.04

2
ADMAT Bandara 25 Sept. 2018 im 12:54

Die Neuinstallation von Ruby und das Aufwärmen von rbenv haben bei mir nicht funktioniert. Am Ende habe ich mich für einen einfachen Symlink des aktuell installierten libreadline.so7 entschieden

locate libreadline.so

Dies ergab eine ganze Liste möglicher Optionen, aber die wahrscheinlich verwendbarste schien /lib/x86_64-linux-gnu/libreadline.so.7 zu sein.

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

Einmal verknüpft, kann ich jetzt rails console ausführen und byebug erneut verwenden.

2
Phil 20 Nov. 2019 im 21:03

Ich konnte auch rails console nach dem Upgrade von Ubuntu vom 16.04 auf den 18.04 nicht ausführen. Ich bekam etwas Ähnliches:

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

Ich musste rvm erneut installieren, indem ich die hier angegebenen Anweisungen befolgte: https://github.com/rvm/ubuntu_rvm

1
almawhoob 31 Aug. 2018 im 13:55

Das Ausführen des folgenden Codes auf dem Terminal hat das Problem für mich gelöst:

cd /lib/x86_64-linux-gnu
sudo ln -s libreadline.so.7.0 libreadline.so.6
1
Augusto Carmo 26 Nov. 2019 im 22:38