【问题标题】:Rails server giving Readline support errorRails 服务器给出 Readline 支持错误
【发布时间】:2015-05-20 15:32:18
【问题描述】:

我是 Ruby on Rails 的新手,我正在尝试启动 RoR 服务器。但是当我运行命令rails server 时,它给了我以下错误:

Sorry, you can't use byebug without Readline. To solve this, you need to
    rebuild Ruby with Readline support. If using Ubuntu, try `sudo apt-get
    install libreadline-dev` and then reinstall your Ruby.
bin/rails:6: warning: already initialized constant APP_PATH
/home/abraar/ror/bin/rails:6: warning: previous definition of     APP_PATH     was here
Usage: rails COMMAND [ARGS]

我将 rbenv 与 Ruby 2.2.2 和 Rails 4.2.1 一起使用 我尝试按照这篇博文 http://vvv.tobiassjosten.net/ruby/readline-in-ruby-with-rbenv/ 上的说明进行操作,但它不起作用。

有什么解决办法吗?

谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 readline


    【解决方案1】:

    要解决这个问题(对于 OSX,在 Sierra 上测试),在你的 shell 中运行以下命令 -

    ln -s /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.6.dylib

    【讨论】:

    • 谢谢!我读到零的答案,但这对我有用
    • 我用 libreadline.7.dylib 更改了 libreadline.6.dylib,它对我有用
    【解决方案2】:

    2019 年 7 月在 Mac 上

    我在我的机器上遇到了同样的问题,运行以下命令解决了这个问题,请注意,即使您有版本 8 的 readline,您仍然需要链接到版本 7,如图所示:

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

    【讨论】:

      【解决方案3】:

      我通过(使用 homebrew 和 rbenv 的 mac 命令)解决了这个问题:

      • 安装readlinebrew install readline
      • 重新安装/重新编译 ruby​​ rbenv install 2.3.1

      【讨论】:

        【解决方案4】:

        我遇到了以下错误:

        Sorry, you can't use byebug without Readline
        

        重新安装 ruby​​ 为我解决了这个问题(使用 rvm):

        rvm reinstall 2.1.5
        

        您可以将 ruby​​ 版本(即 2.1.5)替换为您要重新安装的版本。

        【讨论】:

          【解决方案5】:

          将此添加到gem的开发组中。

          gem 'rb-readline'
          

          https://github.com/deivid-rodriguez/byebug/issues/289#issuecomment-251383465

          【讨论】:

            【解决方案6】:

            byebug 是一个用于调试的 gem。

            新的 Rails 应用生成器默认包含在开发和测试环境中,following lines

            group :development, :test do
            <% if RUBY_ENGINE == 'ruby' -%>
              # Call 'byebug' anywhere in the code to stop execution and get a debugger console
              gem 'byebug'
            

            我认为新手能够使用它并不重要。我建议在 Gemfile 中注释掉该行,运行 bundle install 并继续您的 Rails 学习冒险。

            【讨论】:

            • 太棒了!我的 Rails 服务器现已启动并正在运行……您的解决方案正在运行。谢谢!
            • 太棒了。您可以稍后在需要时返回byebug / 其他选项以在 Rails 应用程序中进行调试。
            • 它也适用于我的情况。但是我想知道为什么它以前不起作用,因为我已经完成了错误所说的操作。我已经安装了所需的软件包,然后使用“rbenv”重新安装了 ruby​​,并从源代码编译,但对我没有任何作用。
            • 这不是解决问题的方法,为什么初学者 Rails 开发人员不需要调试,如果他来自其他语言并且不是完全新手怎么办。
            • 同意之前的评论。不是解决方案。而且,byebug 非常有用,尤其是对于初学者!
            【解决方案7】:

            我通过以下方式解决了它

            brew unlink readline 
            brew link readline --force
            

            【讨论】:

              【解决方案8】:

              如果你赶时间,

              打开你的 byebug 的 history.rb

              /Users/user/.rvm/gems/ruby-2.1.5@rails/gems/byebug-9.0.5/lib/byebug/history.rb
              

              并注释掉以下行,

              require 'readline'
              

              但是,建议使用 byebug 调试。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2013-06-18
                • 2013-01-03
                • 1970-01-01
                • 1970-01-01
                • 2015-09-22
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多