読者です 読者をやめる 読者になる 読者になる

ハイパーニートプログラマーへの道

頑張ったり頑張らなかったり

Ubuntu14.04にてRuby on Rails4をインストール(ctrl + cが効かない・・・だと?)

(12/16更新)
いや、効きました・・・

以前に端末のショートカット設定をやったときに、Ctrl+Cをコピーに設定していたようで(汗
それじゃあkillできないよね・・・。

というわけで設定し直したのがこちら:
【Ubuntu】端末のキーボードショートカット設定(コピぺできるように) - ハイパーニートプログラマーへの道

これでCtrl+Ckillできるようになりました・・・。


  • Ubuntu14.04
  • Ruby2.1.1

これに沿ってやっていきます。

Ruby on Rails 4入門 (全28回) - プログラミングならドットインストール

Railsインストール、アプリ作成、bundleインストール

$ gem install rails

railsをインストールしたらアプリを作成

$ rails new myapp

myappディレクトリに移動して

$ bundle install --path vendor/bundle

これでGemfileに指定されている(標準で含まれない)gemもインストールされるとな。

参考記事:

開発現場でちゃんと使えるRails 4入門(1):簡単インストールから始める初心者のためのRuby on Railsチュートリアル (2/3) - @IT

サーバー起動

サーバー立ち上げます。

myapp$ rails s
/home/noriyo_tcp/myapp/vendor/bundle/ruby/2.1.0/gems/execjs-2.2.1/lib/execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. 

JavaScriptランタイムないよ!とのことなので
Gemfileを覗きます。

$ vi Gemfile

therubyracerがある行のコメントをはずします。

# See https://github.com/sstephenson/execjs#readme for more supported runtimes
gem 'therubyracer',  platforms: :ruby

で、もう一度

$ bundle install
Installing therubyracer 0.12.1
Using turbolinks 2.3.0
Using uglifier 2.5.3
Your bundle is complete!
It was installed into ./vendor/bundle

入ったー。

$ rails s
=> Booting WEBrick
=> Rails 4.1.5 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option)
=> Ctrl-C to shutdown server
[2014-09-11 20:04:50] INFO  WEBrick 1.3.1
[2014-09-11 20:04:50] INFO  ruby 2.1.1 (2014-02-24) [x86_64-linux]
[2014-09-11 20:04:50] INFO  WEBrick::HTTPServer#start: pid=2932 port=3000

http://localhost:3000にブラウザからアクセス

ctrl + cが効かない・・・だと?

Ctrl + Cでサーバーをシャットダウンできないからはて困ったなと。

ruby on rails - Can't stop WEBrick 1.3.1 with ctrl-c on Ubuntu 11.04 - Stack Overflow

1.ctrl + c(すぐには何もしない)
2.ctrl + zWEBrickをポーズして、シェルに戻る)
3.fgWEBrickを再開し、すぐさまSIGINTを遂行する)
とありますが、できないなあ・・・。

Rails - WEBrickがA server is already runningの場合の対処 - Qiita

PIDを調べてkillするというのもありますが毎回これやるのもなあ。

$ ps ax
()
2932 pts/12   Tl     0:02 /home/noriyo_tcp/.rvm/rubies/ruby-2.1.1/bin/ruby bin/rails s
(略)
$ kill -9 2932

http://dfcblog.net/2013/04/%E6%97%A2%E3%81%ABrails%E3%81%8C%E8%B5%B0%E3%81%A3%E3%81%A6%E3%81%84%E3%81%9F%E3%81%9F%E3%82%81%E8%B5%B7%E5%8B%95%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E5%95%8F%E9%A1%8C.html

psの結果から探すのもアレなんで

$ ps aux | grep rails

と絞り込んでからのプロセスを殺すと。これでもめんどいですけど。