簡體   English   中英

由於libreadline,rails控制台無法加載

[英]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 readlinebrew 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM