我最近重新安装了ruby 2.1.2,因为我想安装一个gem(ruby-debug-ide
)
sudo rvm reinstall 2.1.2 --disable-binary --with-gcc=gcc-4.2
从那时起,我无法使用bundle exec rails c
加载我的控制台
由于以下错误:
/Users/ohad/.rvm/gems/ruby-2.1.2@aaa/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require': dlopen(/Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/readline.bundle, 9): Library not loaded: @@HOMEBREW_PREFIX@@/opt/readline/lib/libreadline.6.dylib (LoadError)
Referenced from: /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/readline.bundle
尝试了brew uninstall readline
和brew install --build-from-source readline
哪个有效,但没有解决我的问题。
答案 0 :(得分:64)
今天跑过这个,解决它我做了:
brew rm -f readline
brew install readline
brew link readline --force
希望它有所帮助。
编辑:自从我写这篇文章后,我最近又遇到了这个问题(在降级Ruby之后),我现在更喜欢@ califrench的解决方案来自下面的评论: ln -s /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
答案 1 :(得分:64)
基于对所接受答案的评论而言,这些答案比答案更多,这似乎是最受欢迎的解决方案。
看起来rails 4.2.6正在寻找libreadline.6
而不是libreadline
。所以只需要创建一个符号链接。
ln -s /usr/local/opt/readline/lib/libreadline.dylib \
/usr/local/opt/readline/lib/libreadline.6.dylib
希望这可以帮助那些仍然被卡住的人!
答案 2 :(得分:48)
我能够通过重新安装Ruby来解决同样的问题。 在Homebrew方面,重新安装readline(甚至来自源代码)并没有帮助。
我正在使用RVM,所以我为它排序了它:
rvm reinstall 2.3.1
我认为Homebrew最近可能会在其他一些软件包中读取readline v7,我怀疑这可能是罪魁祸首。
答案 3 :(得分:15)
向gem 'rb-readline'
添加Gemfile
为我解决了这个问题。请参阅https://github.com/ConnorAtherton/rb-readline。
答案 4 :(得分:14)
在对@ mauro_oto的帖子发表评论后得到很多积极的反馈后,我想我会将此作为答案发布:
对我来说
cp /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.6.dylib
做了伎俩。看起来像rails 4.2.6正在寻找libreadline.6而不是libreadline。不过,我可能应该将它符号化。所以ln -s /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.6.dylib
更合适。希望这有助于其他仍然被卡住的人!
答案 5 :(得分:9)
这一切都不适合我。我正在使用osx sierra。这对我有用。
ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.dylib
希望这可以帮助那些人。
答案 6 :(得分:6)
我的ENV:Ruby:2.2.1,Rails:4.2.1,macOS Sierra 10.12.4;
以下命令适用于我和我的同事:
ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.dylib
答案 7 :(得分:2)
在使用自制程序的OSX上,您可以指定哪个readline版本处于活动状态。 e.g。
brew switch readline 6.3.8
(它可能安装在/usr/local/Cellar/readline/
)
答案 8 :(得分:2)
这解决了我的问题:
将libreadline。{version} .dylib替换为您错误的版本:
ln -s /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
答案 9 :(得分:1)
我遇到了类似的问题,但是版本更新了。我的错误是:
payment
重要的部分是dlopen(/Users/juanjo/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/x86_64-darwin18/readline.bundle, 9): Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib (LoadError)
Referenced from: /Users/juanjo/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/x86_64-darwin18/readline.bundle
Reason: image not found - /Users/juanjo/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/x86_64-darwin18/readline.bundle
看着Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib
,我看到我安装了/usr/local/opt/readline/lib/
,而不是7。
要解决我的问题,在其他答案的指导下,我必须执行以下操作:
libreadline.8.dylib
换句话说:
ln -s /usr/local/opt/readline/lib/libreadline.8.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
。