Проблема установки и запуска Ruby on Rails
Я установил Ruby + Rails и его зависимости на новую установку Ubuntu 14.04, используя следующие команды:
Контрольный список перед установкой
sudo apt-get update sudo apt-get upgrade
Добавьте подходящие репозитории с сайта Brightbox.
sudo apt-get install software-properties-common
sudo apt-add-repository ppa:brightbox/ruby-ng
sudo apt-get update
sudo apt-get install ruby2.2 ruby2.2-dev
sudo apt-get install ruby-switch
sudo apt-get install bundler
sudo ruby-switch --set ruby2.2
ruby -v
Установите другие зависимости
sudo apt-get update
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev
libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev
libcurl4-openssl-dev python-software-properties libffi-dev
Установите MySQL
sudo apt-get install mysql-server mysql-client libmysqlclient-dev
Установить ImageMagick
sudo apt-get install imagemagick
Установите Rails
gem install rails --no-rdoc --no-ri
Установить SublimeText
sudo add-apt-repository ppa:webupd8team/sublime-text-3
sudo apt-get update
sudo apt-get install sublime-text-installer
Создать новое приложение
mkdir projects
cd projects
rails new testapp
cd testapp
Открыть проект в возвышенном тексте
subl -n .
Запустить сервер рельсов
bin/rails server
Я не получил никакой ошибки во время установки, но когда я запустил команду bin/rails server
это дало мне следующую ошибку
Ignoring json-1.8.3 because its extensions are not built. Try: gem pristine json --version 1.8.3
Warning: Running `gem pristine --all` to regenerate your installed gemspecs (and deleting then reinstalling your bundle if you use bundle --path) will improve the startup performance of Spring.
/var/lib/gems/2.2.0/gems/execjs-2.5.2/lib/execjs/runtimes.rb:48:in `autodetect': Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
from /var/lib/gems/2.2.0/gems/execjs-2.5.2/lib/execjs.rb:5:in `<module:ExecJS>'
from /var/lib/gems/2.2.0/gems/execjs-2.5.2/lib/execjs.rb:4:in `<top (required)>'
from /var/lib/gems/2.2.0/gems/uglifier-2.7.1/lib/uglifier.rb:3:in `require'
from /var/lib/gems/2.2.0/gems/uglifier-2.7.1/lib/uglifier.rb:3:in `<top (required)>'
from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:72:in `require'
from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:72:in `block (2 levels) in require'
from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:70:in `each'
from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:70:in `block in require'
from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:59:in `each'
from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:59:in `require'
from /usr/lib/ruby/vendor_ruby/bundler.rb:132:in `require'
from /home/arif/projects/testapp/config/application.rb:7:in `<top (required)>'
from /var/lib/gems/2.2.0/gems/railties-4.2.1/lib/rails/commands/commands_tasks.rb:78:in `require'
from /var/lib/gems/2.2.0/gems/railties-4.2.1/lib/rails/commands/commands_tasks.rb:78:in `block in server'
from /var/lib/gems/2.2.0/gems/railties-4.2.1/lib/rails/commands/commands_tasks.rb:75:in `tap'
from /var/lib/gems/2.2.0/gems/railties-4.2.1/lib/rails/commands/commands_tasks.rb:75:in `server'
from /var/lib/gems/2.2.0/gems/railties-4.2.1/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
from /var/lib/gems/2.2.0/gems/railties-4.2.1/lib/rails/commands.rb:17:in `<top (required)>'
from /home/arif/projects/testapp/bin/rails:8:in `require'
from /home/arif/projects/testapp/bin/rails:8:in `<top (required)>'
from /var/lib/gems/2.2.0/gems/spring-1.3.6/lib/spring/client/rails.rb:28:in `load'
from /var/lib/gems/2.2.0/gems/spring-1.3.6/lib/spring/client/rails.rb:28:in `call'
from /var/lib/gems/2.2.0/gems/spring-1.3.6/lib/spring/client/command.rb:7:in `call'
from /var/lib/gems/2.2.0/gems/spring-1.3.6/lib/spring/client.rb:26:in `run'
from /var/lib/gems/2.2.0/gems/spring-1.3.6/bin/spring:48:in `<top (required)>'
from /var/lib/gems/2.2.0/gems/spring-1.3.6/lib/spring/binstub.rb:11:in `load'
from /var/lib/gems/2.2.0/gems/spring-1.3.6/lib/spring/binstub.rb:11:in `<top (required)>'
from /usr/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /usr/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /home/arif/projects/testapp/bin/spring:13:in `<top (required)>'
from bin/rails:3:in `load'
from bin/rails:3:in `<main>'
Я сильно застрял, пожалуйста, помогите мне!
1 ответ
Как вы, наверное, заметили, это связано с ошибкой JRE. Убедитесь, что в вашем файле gem есть следующие записи:
gem 'execjs'
gem 'therubyracer', :platforms => :ruby
Я видел сообщения в SE, где пользователи смогли решить эту проблему, установив nodejs. Для этого в вашем терминале запустите:
sudo apt-get install nodejs