Немагчыма выканаць «Рэйкі кансолі» з-за памылкі з Readline

Я не магу выканаць Рэйкі кансолі з-за гэтай памылкі:

localhost:TwitterForZombies wiz$ rails c
/Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/irb/completion.rb:9:in `require': dlopen(/Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin12.2.1/readline.bundle, 9): Library not loaded: /usr/local/opt/readline/lib/libreadline.6.2.dylib (LoadError)
  Referenced from: /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin12.2.1/readline.bundle
  Reason: image not found - /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin12.2.1/readline.bundle
    from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/irb/completion.rb:9:in `'
    from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands/console.rb:3:in `require'
    from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands/console.rb:3:in `'
    from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands.rb:38:in `require'
    from /Users/wiz/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands.rb:38:in `'
    from script/rails:6:in `require'
    from script/rails:6:in `
'

Я усталяваў Readline праз самагон. Я хацеў бы працягваць выкарыстоўваць rbenv замест РВМ.

Дзякуй за чытанне майго пытання.

80
дададзена аўтар Santhosh, крыніца

8 адказы

У мяне была такая ж праблема ў апошні час з дамарослага і libreadline.7.x.dylib/libreadline.6.x.dylib

Я вырашыў яго камандай:

ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.dylib

source: https://github.com/rails/rails/issues/26658

274
дададзена
Гэта працавала для мяне.
дададзена аўтар maicher, крыніца
ідэальнае рашэнне
дададзена аўтар amtest, крыніца
Выдатна. гэта працуе. Але .. робіць гэта бяспечна? :)
дададзена аўтар skywinder, крыніца
Беглы агляд змяненняў паміж libreadline 6.3 і 7.0 нічога, што, як уяўляецца, з'яўляецца крытычным змяненнем, чакаць у тых выпадках, калі праграмнае забеспячэнне можа быць абапіраюцца на незарэгістраванай або багі паводзін не паказваюць. Я бы камфортна спрабуе гэтае рашэнне ў святле гэтага.
дададзена аўтар Lyndsy Simon, крыніца
Выкарыстанне сімвалічных спасылак, каб падмануць сістэму ў выкарыстанні, што на самой справе іншы (вялікі!) Нумар версіі, як правіла, дрэнная ідэя. Было б добра, калі б хтосьці больш дасведчаны можа растлумачыць, чаму вышэй выпраўленне бяспекі.
дададзена аўтар Pistos, крыніца
Boom. Гэта спрацавала, дзякуй!
дададзена аўтар bigmac, крыніца
Што хак :) Але гэта працуе проста выдатна, таму што цяпер: D Дзякуй!
дададзена аўтар Spinor8, крыніца
Perfect, дзякуй шмат! = D
дададзена аўтар overallduka, крыніца
Дрэнна, але працуе.
дададзена аўтар Frank Fang, крыніца
Вы легенда, дзякуй вам за гэта, @wiz павінны былі адзначаны вы правільна!
дададзена аўтар Schwad, крыніца

Homebrew гэта выдатна, але калі-то ў той час як ён не гуляе добра з некаторымі з іншых рухаюцца частак.

A brew update && brew upgrade brought in libreadline.7.x.dylib while automatically removing libreadline.6.x.dylib, which ruby was still relying on.

Там можа быць больш разумныя спосабы, каб выправіць гэтую праблему, але грубая сіла працуе для мяне:

$ rbenv uninstall 2.3.1
$ rbenv install 2.3.1
$ cd /path/to/my/app
$ bundle

Вышэй мяркуе наяўнасць rbenv ў лалавага зборкі і, вядома ж, пакетірованія ; замяніць 2.3.1 з любой версіяй рубіну вы выкарыстоўваеце.

Калі ласка, звярніце ўвагу, што падобныя праблемы могуць узнікнуць з рознымі дамарослымі кіраванымі бібліятэкамі ( убачыць мой уласны адказ на гэта, напрыклад, )

51
дададзена
@FrankFang, ён можа ці не можа, і не толькі для гэтай канкрэтнай памылкі. Кожны раз, калі Абнаўленне заварыць замяняе любую старую бібліятэку з больш позняй версіяй, ёсць некаторыя шанцы, што іншыя праграмы ў вашай сістэме будуць скардзіцца.
дададзена аўтар Giuseppe, крыніца
Калі б тое ж самае толькі здарылася са мной - мне цікава, калі няма нейкі спосаб для Homebrew заўважыць, што некаторыя ЛИЭС звязаны з больш старымі версіямі некаторых, якія Homebrew паставак?
дададзена аўтар slhck, крыніца
Гэта рашэнне працуе!
дададзена аўтар chinloong, крыніца
добра. Гэта мае сэнс. :)
дададзена аўтар Frank Fang, крыніца
Ці будзе памылка адбываецца пры запуску заварыць абнаўленне && абнаўлення заварыць зноў?
дададзена аўтар Frank Fang, крыніца
Гэта працуе для мяне ў Эль Капітана, з каштоўны камень ўсталяваць Bundler пасля таго, як усталяваць rbenv.
дададзена аўтар handwovensole, крыніца

Я атрымаў тую ж памылку з Рубі 2.1.0, і рэйкі 4.0. Пасля пошуку і спрабуе шмат, нарэшце, ён працуе добра :) Вось што я зрабіў:

rvm cleanup all
rvm autolibs enable
rvm install 2.1.0 

Іншыя спосабы:

brew update
brew uninstall readline
brew install readline

Каманда autolibs прымусіць РВМ ўсталяваць ўсе залежнасці, так што вам не трэба турбавацца пра гэта.

Спадзяюся, што гэта карысна.

21
дададзена
Вы, магчыма, не трэба Ачыстка РВМ . проста Пераўсталёўка лал версія.
дададзена аўтар Swaps, крыніца

Як Сэчины намякнулі, ўстаноўку Readline, а затым пераўсталяваць лал ідэальнага падыход - але дэталі трохі адрозніваюцца для rbenv. Улічваючы вашыя шляхі да файлаў, я мяркую, што вы на Mac, так што наступнае павінна дапамагчы:

brew install readline ruby-build
env CONFIGURE_OPTS=--with-readline-dir=`brew --prefix readline` rbenv install 1.9.3-p286

Гэта было ўзята з лалавага пабудаваць Wiki і хуткі пошук Google.

20
дададзена
павінен быць прыняты адказ
дададзена аўтар m02ph3u5, крыніца
Пасля паўторнай ўстаноўкі існуючай версіі Ruby, з Readline, запусціўшы каманду, напрыклад, расслаеннем інсталяцыю паказаў мне шмат папярэджанняў, як «Ігнараванне Bcrypt-3.1.11, таму што яго пашырэння не будуюцца». Як адзначаецца ў адказах на
дададзена аўтар Rory O'Kane, крыніца
не забудзьцеся перафразаваць пасля выканання гэтага
дададзена аўтар iGbanam, крыніца

Я на OSX, ruby2.3.0, rails5. Даданне Gem 'RB-Readline' на мой Gemfile ліквідавалі гэтую праблему.

20
дададзена
каштоўны камень гь-Readline працаваў для мяне. Я дадаў яго да: распрацоўцы ,: тэставая група - добрае хуткае рашэнне!
дададзена аўтар tnum, крыніца

Выкарыстанне Макінтош, Эль Капітан версія, можна выправіць толькі шляхам рабіць

rvm reinstall your_ruby_version

(Напрыклад, РВМ пераўсталёўваць лалава-2.3.1 )

Спадзяюся, што гэта дапамагае, ўдачы!

5
дададзена
Гэта было ўсё, што мне трэба рабіць.
дададзена аўтар Pistos, крыніца
<�Р> паспрабуйце ўсталяваць Readline і пераўсталяваць лал      <�Р> https://rvm.io/packages/readline/
0
дададзена
дзякуй за адказ, але ці ёсць спосаб, каб працягваць выкарыстоўваць rbenv замест RVM?
дададзена аўтар wiz, крыніца

ўзятыя з карыстальніка GitHub @enderahmetyurt (гэта адзінае рашэнне, якое працуе для мяне).

Рашэнне: Дадайце Gem 'гь-ReadLine' на ваш Gemfile ў група распрацоўнікаў і расслаеннем ўсталяваць .

Гэта самае простае рашэнне для дурных памылак «чытання радка».

0
дададзена