rcmdnk's blog

coLinux入門―Windows上でLinuxを使う!

Octopressをアップデート に関して、 coLinux 内でもコンパイルできるように環境調整を行いました。

Gemのアップデート

Cygwinでのアップデート 同様、 ファイルはWindowsで同期してるDropbox内の物を使うので、 いきなりbundle installするだけ。 Octopressのディレクトリへ行って

$ bundle install
...

JavaScript Runtime

generateしてみると

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
(-_-) $ rake generate

## Test build for source/_posts/2014-07-10-test.md

## Stashing other posts
## Generating Site with Jekyll
identical source/stylesheets/screen.css
~/.rvm/gems/ruby-1.9.3-p547/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. (ExecJS::RuntimeUnavailable)
        from ~/.rvm/gems/ruby-1.9.3-p547/gems/execjs-2.2.1/lib/execjs.rb:5:in `<module:ExecJS>'
        from ~/.rvm/gems/ruby-1.9.3-p547/gems/execjs-2.2.1/lib/execjs.rb:4:in `<top (required)>'
        from ~/.rvm/gems/ruby-1.9.3-p547/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `require'
        from ~/.rvm/gems/ruby-1.9.3-p547/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `<top (required)>'
        from ~/.rvm/gems/ruby-1.9.3-p547/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `require'
        from ~/.rvm/gems/ruby-1.9.3-p547/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `<top (required)>'
        from ~/.rvm/gems/ruby-1.9.3-p547/gems/jekyll-coffeescript-1.0.0/lib/jekyll-coffeescript.rb:2:in `require'
        from ~/.rvm/gems/ruby-1.9.3-p547/gems/jekyll-coffeescript-1.0.0/lib/jekyll-coffeescript.rb:2:in `<top (required)>'
        from ~/.rvm/gems/ruby-1.9.3-p547/gems/jekyll-2.1.0/lib/jekyll.rb:75:in `require'
        from ~/.rvm/gems/ruby-1.9.3-p547/gems/jekyll-2.1.0/lib/jekyll.rb:75:in `<top (required)>'
        from ~/.rvm/gems/ruby-1.9.3-p547/gems/jekyll-2.1.0/bin/jekyll:6:in `require'
        from ~/.rvm/gems/ruby-1.9.3-p547/gems/jekyll-2.1.0/bin/jekyll:6:in `<top (required)>'
        from ~/.rvm/gems/ruby-1.9.3-p547/bin/jekyll:23:in `load'
        from ~/.rvm/gems/ruby-1.9.3-p547/bin/jekyll:23:in `<main>'
        from ~/.rvm/gems/ruby-1.9.3-p547/bin/ruby_executable_hooks:15:in `eval'
        from ~/.rvm/gems/ruby-1.9.3-p547/bin/ruby_executable_hooks:15:in `<main>'
## Restoring stashed posts
$ which ruby

な感じのエラー。

上のメッセージにもあるページ: https://github.com/sstephenson/execjs に行ってみると、


ExecJS supports these runtimes:

  • therubyracer - Google V8 embedded within Ruby
  • therubyrhino - Mozilla Rhino embedded within JRuby
  • Node.js
  • Apple JavaScriptCore - Included with Mac OS X
  • Microsoft Windows Script Host (JScript)

な感じで幾つか必要なRuntimeをインストールする方法が示されています。

therubyracer

Gemfileに

gem 'therubyracer'

と加えてbundle installしてみます。

coLinuxでやったら凄い時間がかかったので、試しにMacの方でもやってみたら、 それでもかなりの時間がかかりました。

さらにCygwinではtherubyracerに必要なlibv8というGemがインストール出来ません。

ruby on rails - Can’t install libv8 gem on Cygwin - Stack Overflow

なので、共用のGemfileに書いておく場合はcoLinux以外では 避ける様な設定をするか、 coLinuxではgem install therubyracerを直接行うか、になります。

ただ、やたらインストールに時間がかかる(数十分とかそれ以上。。。)のでちょっと辛い。 (結局coLinuxでは時間がかかりすぎて面倒になって諦めました。。。)

therubyrhino

上のStack Overflowなんかではこれを入れればOK、とかも書いてあるんですが、 入れてみましたが上手く行きませんでした。

インストール自体はGemfilesに書いてのbundle installでも gem install therubyrhinoでも 殆ど時間はかかりませんでしたが(数秒~数十秒)。

もしかしたら何か設定を見落としてるかきちんとインストールされてなかっただけかもしれません。

Node.js

とりあえずapt-getで何も考えずにトライしてみると

$  sudo apt-get install nodejs
sudo: unable to resolve host debian
[sudo] password for user:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package nodejs
$

な感じで置けない、と。

一度戻ってパッケージをチェックしてみると

$ apt-cache search node| grep node
...
node - Amateur Packet Radio Node program
...
$

と、nodeはありますが、これは別物で、 一方nodejsはありません。

Installing Node.js via package manager · joyent/node Wiki

Debian – パッケージ検索結果 – nodejs

これらを見るとオフィシャルにサポートしている様ですが、 debianのバージョンが古いからか、パッケージを含むレポジトリ?を見てないからか 上手く行きませんでした。

そこで、直接ソースをコンパイルしてインストールしてみることに。

$ cd ~/tmp/
$ v=v0.11.13
$ wget http://nodejs.org/dist/$v/node-${v}.tar.gz
$ tar xzf node-${v}.tar.gz
$ cd node-$v
$ ./configure --prefix=~/usr/local/stow/node-${v}
$ make && make install
$ cd ~/usr/local/stow
$ stow node-${v}

インストールした後、rake generateしてみると 問題なくビルドすることが出来るようになりました。

Rubyのアップデート

coLinuxではrvmを用いてRubyをインストールしていて、 まだ1.9.3だったので2.0.0へのアップデート。 特に問題があるわけではありませんが。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ rvm update
ERROR: rvm update has been removed. Try 'rvm get head' or see the 'rvm get' and rvm 'rubygems' CLI API instead
$ rvm get head
Downloading https://get.rvm.io
Downloading https://github.com/wayneeseguin/rvm/archive/master.tar.gz

Upgrading the RVM installation in ~/.rvm/
    RVM PATH line found in ~/.profile ~/.zshrc.
    RVM PATH line not found for Bash, rerun this command with '--auto-dotfiles' flag to fix it.
    RVM sourcing line found in ~/.bashrc.
    RVM sourcing line not found for Zsh, rerun this command with '--auto-dotfiles' flag to fix it.
Upgrade of RVM in ~/.rvm/ is complete.
...
RVM reloaded!
$ rvm uninstall all
...
$ rvm install 2.0.0
Install of ruby-2.0.0-p481 - #complete
Ruby was built without documentation, to build it run: rvm docs generate-ri
$
Sponsored Links
Sponsored Links

« Octopressのアップデート@Cygwin GtHub Pagesについて »

}