その他
    ホーム 技術発信 DoRuby CentOS6でnode.jsをrpmからinstallする

    CentOS6でnode.jsをrpmからinstallする

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    rails 3.1ではJavaScriptのランタイムが必要になります。

    今回はCentOS6にnode.jsを入れて対応してみます。

    標準でRails3.1をインストールするとassetsという仕組みでCoffeeScriptが利用されることになります。

    そのため、JavaScriptのランタイムがないと起動できません。

    $ rails s -p 5001
    /usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.2.9/lib/execjs/runtimes.rb:47
    :in `autodetect': Could not find a JavaScript runtime. 
    See https://github.com/sstephenson/execjs 
    for a list of available runtimes. (ExecJS::RuntimeUnavailable)
    (以下略)
    

    実際、Gemfileに指定されているcoffee-railsは以下のような依存関係があります。

    $ gem dependency coffee-rails
    Gem coffee-rails-3.1.1
      coffee-script (>= 2.2.0)
      railties (~> 3.1.0)
    
    $ gem dependency coffee-script
    Gem coffee-script-2.2.0
      coffee-script-source (>= 0)
      execjs (>= 0)
    
    

    では、この依存関係をクリアするようにCentOS上でnode.jsをインストールしましょう。

    ただし、普通にソースコードから入れてしまうと管理のコストが上がってしまい非常にSAN値が削られてしまうので、Redhat系OSらしくrpmでインストールしましょう。

    運がいいことに、kazuhisyaさんがspecファイルを公開しているので、こちらを利用します。

    ちなみに、ruby1.9をインストールしたときにだいたい依存関係クリアしていたっぽいので、ビルドで落ちたら依存関係を確認してください。(yum-builddepとか使ったことないので…)

    $ mkdir -p ~/rpmbuild/SOURCES/
    $ cd ~/rpmbuild/SOURCES/
    $ wget http://nodejs.org/dist/v0.6.5/node-v0.6.5.tar.gz
    $ cd
    $ git clone https://github.com/kazuhisya/nodejs-rpm.git
    $ cd nodejs-rpm/
    $ git checkout -b v0.6.5 v0.6.5
    $ rpmbuild -bb nodejs.spec
    $ sudo rpm -ivh ~/rpmbuild/RPMS/x86_64/nodejs-0.6.5-1.el6.x86_64.rpm
    

    これでnode.jsのインストールが完了しました。

    あとはサーバを起動してみましょう。

    $ rails s -p 5001=> Booting WEBrick
    => Rails 3.1.3 application starting in development on http://0.0.0.0:5001
    => Call with -d to detach
    => Ctrl-C to shutdown server
    

    無事成功しました。

    大変有益なspecファイルを公開してくれたkazuhisyaさん、ありがとうございます!今度おごってください!

    記事を共有