Подтвердить что ты не робот

Rails new <app> или rails -h craps out с не может загрузить такой файл - io/console

[[email protected] rails]$ rails -h
/usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- io/console (LoadError)
    from /usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/share/ruby/gems/2.0/gems/thor-0.19.1/lib/thor/shell/basic.rb:2:in `<top (required)>'
    from /usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/share/ruby/gems/2.0/gems/thor-0.19.1/lib/thor/shell/color.rb:1:in `<top (required)>'
    from /usr/local/share/ruby/gems/2.0/gems/thor-0.19.1/lib/thor/shell.rb:17:in `shell'
    from /usr/local/share/ruby/gems/2.0/gems/thor-0.19.1/lib/thor/base.rb:439:in `start'
    from /usr/local/share/ruby/gems/2.0/gems/railties-4.1.0/lib/rails/commands/application.rb:17:in `<top (required)>'
    from /usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/share/ruby/gems/2.0/gems/railties-4.1.0/lib/rails/cli.rb:14:in `<top (required)>'
    from /usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/share/ruby/gems/2.0/gems/railties-4.1.0/bin/rails:9:in `<top (required)>'
    from /usr/local/bin/rails:23:in `load'
    from /usr/local/bin/rails:23:in `<main>'

Я установил Ruby on Rails, используя установочные рельсы $gem, и он также завершился отлично. Я проверил статус процесса с помощью $echo $? и это было 0, означающее успех.

Интересно, что эти две команды работают нормально:

$ which rails
/usr/local/bin/rails

$ rails -v
Rails 4.1.0

Это 64-битное изображение AMI Web-сервисов Amazon. Пожалуйста, помогите мне понять это.

У меня установлен пакет:

$ gem install bundler
Fetching: bundler-1.6.2.gem (100%)
Successfully installed bundler-1.6.2
Parsing documentation for bundler-1.6.2
Installing ri documentation for bundler-1.6.2
Done installing documentation for bundler after 5 seconds
1 gem installed

Я проверил наличие дубликатов:

$ find / 2>/dev/null| grep bin/ruby
/usr/bin/ruby
/usr/bin/ruby2.0

$ find / 2>/dev/null| grep bin/rails
/usr/local/share/ruby/gems/2.0/gems/railties-4.1.0/bin/rails
/usr/local/share/ruby/gems/2.0/gems/railties-4.1.0/lib/rails/generators/rails/plugin/templates/bin/rails.tt
/usr/local/share/ruby/gems/2.0/gems/railties-4.1.0/lib/rails/generators/rails/app/templates/bin/rails
/usr/local/share/ruby/gems/2.0/gems/rails-4.1.0/guides/code/getting_started/bin/rails
/usr/local/bin/rails
/home/ec2-user/.gem/ruby/2.0/gems/rails-4.1.0/guides/code/getting_started/bin/rails
4b9b3361

Ответ 1

Итак, я решил это в ту же ночь, но каким-то образом Stackoverflow не отправил мне никаких уведомлений о ответах на вопрос, поэтому я не знал об этих ответах. Это то, что я закончил делать. Фактически он удалял рубин на рельсах и устанавливал его с нуля. Это было на сервере веб-сервисов Amazon - вкус linux.

sudo yum update

$wget  https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer

$ bash -s stable < rvm-installer

$ source /home/ec2-user/.rvm/scripts/rvm

$ rvm requirements

$ sudo yum erase ruby

$ rvm install ruby

$ rvm use ruby --default

$ rvm rubygems current

$ gem install rails   # this takes forever

После этого он работал отлично.

Ответ 2

Вам нужно будет установить io-console gem. Установите его, используя следующую команду:

gem install io-console

После этого прогона rails -h

Кроме того, запустите echo $PATH и убедитесь, что у вас есть /usr/local/bin в пути. Если нет, тогда вам нужно будет добавить его.

Ответ 3

У меня была точно такая же проблема на AWAS Elastic Beanstalk (Puma, Ruby 2, Rails 4.0):

> rails generate simple_form:install --bootstrap

/usr/local/share/ruby/gems/2.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require': cannot load such file -- io/console (LoadError)

Я просто добавил:

gem 'io-console'

Наверху моего Gemfile и запущен пакет снова установить на коробке для больших успехов. Надеюсь, что быстрее, чем переустанавливать рельсы для всех, кто работает с этим.

Ответ 4

Спасибо; вам действительно нужна io-console. Чтобы выполнить эту работу, установите GCC. Отдых необходимо позже:

yum -y install gcc mysql-devel ImageMagick-devel

Затем

gem install io-console

работает, и я могу продолжить установку.