![](/img/trans.png)
[英]rails 5, rbenv - rails console doesn't start - Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib (LoadError)
[英]rails console doesn't load due to libreadline
我最近像這樣重新安裝了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
,但不能解決我的問題。
今天就解決了這個問題,我做到了:
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
根據對已接受答案的評論,其投票數比答案多,這似乎是最受歡迎的解決方案。
看起來Rails 4.2.6正在尋找libreadline.6
而不是libreadline
。 所以只需要創建一個符號鏈接。
ln -s /usr/local/opt/readline/lib/libreadline.dylib \
/usr/local/opt/readline/lib/libreadline.6.dylib
希望這可以幫助仍然陷於困境的其他人!
通過重新安裝Ruby,我能夠解決相同的問題。 在Homebrew方面,重新安裝readline(甚至來自源代碼)也無濟於事。
我正在使用RVM,因此對我進行了排序:
rvm reinstall 2.3.1
我認為Homebrew最近可能已經將readline v7用於其他軟件包,我懷疑這很可能是罪魁禍首。
在我的Gemfile
添加Gemfile
gem 'rb-readline'
對我Gemfile
解決了這個問題。 參見https://github.com/ConnorAtherton/rb-readline
在收到我對@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
更合適。 希望這對仍陷於困境的人有所幫助!
所有這些都不適合我。 我正在使用osx sierra。 這對我有用。
ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.dylib
希望這可以幫助某人。
我的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
這解決了我的問題:
將libreadline。{version} .dylib替換為您遇到以下錯誤的版本:
ln -s /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
在使用自制軟件的OSX上,您可以指定哪個readline版本處於活動狀態。 例如
brew switch readline 6.3.8
(它可能安裝在/usr/local/Cellar/readline/
)
我遇到了類似的問題,但是版本更新了。 我的錯誤是:
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/
我看到我已經安裝了libreadline.8.dylib
,而不是7。
為了解決我的問題,在其他答案的指導下,我必須執行以下操作:
ln -s /usr/local/opt/readline/lib/libreadline.8.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
換句話說: ln -s /.../[libreadline you have] /.../[libreadline you need]
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.