【问题标题】:Ruby Gems suddenly stopped working on ubuntu 12.04Ruby Gems 突然停止在 ubuntu 12.04 上工作
【发布时间】:2014-04-07 21:32:29
【问题描述】:

在 ubuntu 盒子上没有做任何事情几天后,我决定尝试一些 ruby​​ 的东西。为此,我想启动pry。不幸的是,我收到了

抱歉,如果没有 Readline 或兼容的库,您将无法使用 Pry。 请gem install rb-readline 或重新编译 Ruby --with-readline。

~/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require':libreadline.so.5:无法打开共享对象文件:没有这样的 文件或目录 - ~/.rbenv/versions/2.1.1/lib/ruby/2.1.0/x86_64-linux/readline.so (加载错误)

一般来说,我对 linux 很陌生,我想我会照它说的做,然后安装这个rb-readline。安装通过就好了,但似乎根本没有做任何事情。如果我这样做gem list p,则该包不会出现。

所以是的,我只是不知道该怎么做才能让它再次工作,而我通过搜索找到的唯一东西与没有 rbenv 的安装有关,并且与 sudo 等有关。

有什么想法吗?

【问题讨论】:

    标签: ruby ubuntu rubygems rbenv


    【解决方案1】:

    在不了解问题并遵循消息选项 2 中的建议的情况下:

    Sorry, you can't use Pry without Readline or a compatible library.
     Possible solutions:
    
     * Rebuild Ruby with Readline support using `--with-readline`
     * Use the rb-readline gem, which is a pure-Ruby port of Readline  <==== Option 2
     * Use the pry-coolline gem, a pure-ruby alternative to Readline
    

    我将 gem 添加到 Gemfile 中(如下所示),然后捆绑和 pry 可用。

    group :development, :test do gem 'pry' gem 'rb-readline' end

    【讨论】:

      【解决方案2】:

      我也有这个问题。我正在使用 rbenv 并通过

      重新安装 ruby

      rbenv install -f 2.2.3

      为我修好了。当然,您会放入各自的版本。 -f 强制安装,即使您已经安装了该特定版本。使用rbenv global查看您安装和设置的版本。

      【讨论】:

        【解决方案3】:

        我有一些问题。但我不想添加 gem 'rb-readline'。那就试试吧……

        $ln -s /usr/local/opt/readline/lib/libreadline.8.0.dylib /usr/local/opt/readline/lib/libreadline.7.dylib

        【讨论】:

          【解决方案4】:

          做一个sudo apt-get install libreadline-dev,好像你错过了 pry 想要的 readline 共享库。如果它以前工作过,不知道为什么图书馆不再存在了。

          【讨论】:

          • 感谢提示,但它似乎已安装,这是我得到的“libreadline-dev 已经是最新版本”。我还检查了那个目录,.so文件实际上存在于那个目录中......
          • 接下来我要做的就是检查与 rbenv 一起使用的 ruby​​ 版本是否与 ruby​​gems 尝试获取的版本相同。显示envgem env 的输出,在gem env 中查看RUBY VERSION、INSTALLATION DIRECTORY 和RUBY EXECUTABLE 条目给你的信息。您可能已经安装了两个不同版本的 ruby​​,而 ruby​​gems 变得混乱了。
          • 我只有一个 - 2.1.1,在我设法查看的所有地方都列出了。而且根本没有在系统级别安装 ruby​​ - 如果我执行 sudo ruby​​ --version,我会得到一个找不到命令
          【解决方案5】:

          我最终做了rbenv uninstall,然后是rbenv install,并重新安装了所有的gem,让它恢复工作。仍然不知道最初是什么原因造成的,但现在可以了。

          【讨论】:

          • 太棒了!很高兴你想出来了。在我的答案下查看我的最后一条评论以获得可能的解释。在使用 rvm 之前,我也发生过类似的事情...... :(
          猜你喜欢
          • 2015-02-26
          • 1970-01-01
          • 1970-01-01
          • 2017-08-22
          • 2021-02-01
          • 2016-12-29
          • 2018-05-09
          • 2015-12-07
          相关资源
          最近更新 更多