DesignAssembler

備忘録に近い

rails sが通らない

rails sが通らない

AWSAmazon Linuxrailsをインストールしてrails sしたらこんなエラーが

Warning: You're using Rubygems 2.0.14 with Spring. Upgrade to at least Rubygems 2.1.0 and run `gem pristine --all` for better startup performance.
bin/rails:6: warning: already initialized constant APP_PATH
/root/r_test/bin/rails:6: warning: previous definition of APP_PATH was here
Usage: rails COMMAND [ARGS]

The most common rails commands are:
 generate    Generate new code (short-cut alias: "g")
 console     Start the Rails console (short-cut alias: "c")
 server      Start the Rails server (short-cut alias: "s")
 dbconsole   Start a console for the database specified in config/database.yml
             (short-cut alias: "db")
 new         Create a new Rails application. "rails new my_app" creates a
             new application called MyApp in "./my_app"

In addition to those, there are:
 destroy      Undo code generated with "generate" (short-cut alias: "d")
 plugin new   Generates skeleton for developing a Rails plugin
 runner       Run a piece of code in the application environment (short-cut alias: "r")

All commands can be run with -h (or --help) for more information.


そして

rails:update:bin

したら怒られた。というかrakeが通らなかった。

たぶんrakeが通らないのが元凶。

解決

とりあえずRubyのアップデート
2.0.0から最新版へ

面倒だからこれからはroot

$ sudo su -

Rubyをダウンロードしてビルド

wget http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.2.tar.gz
tar xvf ruby-2.2.2.tar.gz
cd ruby-2.2.2.tar.gz
./configure
make 
sudo make install


これでrakeできると思ったら

LoadError: cannot load such file -- bundler/setup

bundler/setupがないぞと怒られる。

これでgem install bundlerしようとすると

ERROR:  While executing gem ... (Gem::Exception)
    Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources

またエラーが出る。

今度はopenssl周りか。

gem source -a http://rubygems.org/
gem source -r https://rubygems.org/

を実行します。なんやねんこれ

これでgem installができるようになったので、

gem install bundler

その後railsのディレクトリに戻ってbundle installしようとしたら怒られた。

Rubyをもっかいビルドする。

./configure
make
sudo make install

これでbundle installすると、nokogiriが死んでいた。

この記事見て直す

hyottokoaloha.hatenablog.com

ただ

gem install nokogiri -- --use-system-libraries=true --with-xml2-config=/usr/bin/xml2-config --with-xslt-config=/usr/bin/xslt-config

実行するだけですが。

これでbundle installしたら通った。

これでrake 通るかと思ったら

rake aborted!
ExecJS::RuntimeUnavailable: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes.
/root/r_test/config/application.rb:7:in `<top (required)>'
/root/r_test/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)

Gemfileからgem 'therubyracer', platforms: :rubyをコメントインしてbundle install

エラーが出た

Building native extensions.  This could take a while...
ERROR:  Error installing therubyracer:
	ERROR: Failed to build gem native extension.

    /usr/local/bin/ruby -r ./siteconf20150711-31157-y2v8q8.rb extconf.rb
checking for main() in -lpthread... yes
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling accessor.cc
make: g++: Command not found
make: *** [accessor.o] Error 127

make failed, exit code 2

Gem files will remain installed in /usr/local/lib/ruby/gems/2.2.0/gems/therubyracer-0.12.2 for inspection.
Results logged to /usr/local/lib/ruby/gems/2.2.0/extensions/x86_64-linux/2.2.0-static/therubyracer-0.12.2/gem_make.out

ここを見てtherubyracerをインストール

mintoa.hatenablog.com

だんだんtherubyracerのracerがcancerに見えてきた。

コンパイラの問題か。

yum install gcc-c++

これで

gem install therubyracer

が通った。

これでrakeが通ると思ったら

    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.
rake aborted!
LoadError: cannot load such file -- readline
/root/r_test/config/application.rb:7:in `<top (required)>'
/root/r_test/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)

Readlineないんやね。

gem 'rb-readline'

これでrakeが通った。

rail s

通った。