2014-04-07 72 views
2

经过几天没有做任何事情在Ubuntu的盒子,我决定尝试一些红宝石的东西。为此,我想开火pry。不幸的是,我被提出了红宝石突然停止在Ubuntu的工作12.04

对不起,你不能使用没有Readline或兼容库的Pry。 请gem install rb-readline或重新编译Ruby --with-readline。

〜/ .rbenv/versions/2.1.1/lib/ruby​​/2.1.0/ruby​​gems/core_ext/kernel_require.rb:55: `require':libreadline.so.5:无法打开共享目标文件:没有这样的 文件或目录 - 〜/ .rbenv /版本/ 2.1.1/lib中/红宝石/ 2.1.0/x86_64的Linux的/ readline.so (LoadError)

是相当新的Linux总的来说,我想我会按照说的去做,然后安装这个rb-readline。安装通过很好,但似乎没有做任何事情。如果我做的是gem list p,那么这个包就不会出现。

所以,是的,我只是不知道如何做才能得到它的工作,唯一的事情,我设法通过搜索是有关不rbenv安装找到并有一些东西需要使用sudo等

任何想法?

回答

0

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

+1

感谢您的提示,但似乎已安装,这是我得到的“libreadline-dev已经是最新版本。”我也检查了该目录,并且.so文件实际上存在于该目录中... – bobblez

+0

接下来我要做的事情是检查与rbenv一起使用的ruby版本是否与rubygems尝试拾取的版本相同。在'gem env'中显示'env'和'gem env'的输出,看看RUBY VERSION,INSTALLATION DIRECTORY和RUBY EXECUTABLE条目给你什么。机会是你可以安装两个不同版本的ruby和rubygems变得困惑。 – photoionized

+0

我只有一个 - 2.1.1,列在我设法查看的任何地方。并且根本没有在系统级安装ruby - 如果我做了sudo ruby​​ --version,我得到一个没有找到的命令 – bobblez

0

我最终做了rbenv uninstall,然后是rbenv install并重新安装了所有的宝石,并重新开始工作。仍然不知道是什么原因造成它,但它现在起作用。

+0

太棒了!很高兴你想出来了。查看我的答案下的最后一条评论以获得可能的解释。在使用rvm之前,类似的事情发生在我身上...... :( – photoionized

8

不理解的问题,并在消息的选项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 

我加了宝石到Gemfile中(如下图),捆绑和撬当时可用。

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

5

我有这个问题了。我通过

rbenv install -f 2.2.3

使用rbenv并重新安装红宝石并固定为我。当然你会输入你的相应版本。 -f强制安装,即使您已经安装了该特定版本。使用rbenv global找出你已安装和设置的版本。