Google v8 インストール (for CentOS5.5)
流行りのNode.jsを試したくなったので、まずさくらVPSのCent OS5.5にGoogle v8を入れてみようと思います。
事前準備
ここを見る限り以下が必要なようです。
- Subversion 1.4以上
- Python 2.4以上
- Scons 1.0.0以上
Subversion,Pythonはわかりますが、SConsってなんだろ?
SConstはオープンソースのソフトウェアビルドツール。
SCons - Wikipedia
なるほど。v8はSConsでビルドするようです。
Subversionインストール && Pythonインストール
yumでインストールできます。
$ yum -y install subversion $ yum -y install python
バージョン確認。
$ svn --version svn, バージョン 1.4.2 (r22196) コンパイル日時: Aug 10 2009, 17:54:46 $ python -V Python 2.4.3
うん、大丈夫そうですね。
2011/02/24追記
サーバを立てなおして再インストールしていたら下記のようなエラーが発生しました。
$ sudo scons scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... g++ -o obj/release/accessors.o -c -Wall -Werror -W -Wno-unused-parameter -Wnon-virtual-dtor -pedantic -m32 -O3 -fomit-frame-pointer -fdata-sections -ffunction-sections -ansi -fno-rtti -fno-exceptions -fvisibility=hidden -Wall -Werror -W -Wno-unused-parameter -Wnon-virtual-dtor -pedantic -m32 -O3 -fomit-frame-pointer -fdata-sections -ffunction-sections -ansi -DV8_TARGET_ARCH_IA32 -DENABLE_VMSTATE_TRACKING -DENABLE_LOGGING_AND_PROFILING -DENABLE_DEBUGGER_SUPPORT -Isrc src/accessors.cc In file included from /usr/include/features.h:352, from /usr/include/stdio.h:28, from src/../include/v8stdint.h:33, from src/../include/v8.h:41, from src/v8.h:55, from src/accessors.cc:28: /usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory scons: *** [obj/release/accessors.o] Error 1 scons: building terminated because of errors.
glibc-develを入れないとエラーが発生するようです。
$ sudo yum -y install glibc-devel
SConsインストール
yumでは入れれないようです。
$ sudo yum -y install scons [sudo] password for AnaiMB: Loaded plugins: downloadonly, fastestmirror Loading mirror speeds from cached hostfile * addons: rsync.atworks.co.jp * base: rsync.atworks.co.jp * extras: rsync.atworks.co.jp * updates: rsync.atworks.co.jp Setting up Install Process No package scons available. Nothing to do
rpmでインストールします。こちらからrpmのファイルを落とします。今回は1.0.0をインストール。
$ cd /usr/local/src $ sudo wget http://sourceforge.net/projects/scons/files/scons/1.0.0/scons-1.0.0-1.noarch.rpm/download $ ls -l scons-1.0.0-1.noarch.rpm -rw-r--r-- 1 root 901K 8月 13 2008 scons-1.0.0-1.noarch.rpm $ sudo rpm -Uvh scons-1.0.0-1.noarch.rpm 準備中... ########################################### [100%] 1:scons ########################################### [100%]
インストールできました。バージョンを確認します。
$ scons --version SCons by Steven Knight et al.: script: v1.0.0.r3266, 2008/08/12 07:31:01, by knight on bangkok engine: v1.0.0.r3266, 2008/08/12 07:31:01, by knight on bangkok Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 The SCons Foundation
OKです!
v8インストール
さっそくv8のインストールにとりかかります。
ソースコードのダウンロード
Google Codeからv8のソースコードをSubversionでチェックアウトします。
$ cd /usr/local/src $ sudo svn checkout http://v8.googlecode.com/svn/trunk/ v8-read-only ・・・ A v8-read-only/benchmarks/README.txt A v8-read-only/benchmarks/crypto.js A v8-read-only/benchmarks/deltablue.js A v8-read-only/benchmarks/v8-logo.png U v8-read-only リビジョン 5867 をチェックアウトしました。
できました。
ビルド
簡単らしいです。今チェックアウトしたディレクトリに入って、「scons」と入力するだけで良いらしいです。ほんとかよ。笑
$ cd v8-read-only $ sudo scons ・・・ scons: *** [obj/release/parser.o] Error 1 scons: building terminated because of errors.
うわ、エラーでた。ググってみると同じようなエラーを発見。このリビジョンのdiffのとおりにファイルを「src/preparser.h」を編集すれば良いのかな?
$ cd v8-read-only $ sudo vim src/preparser.h # 723行目 - return NULL; + return kUnknownStatement; # 1009行目 - Expression result = NULL; + Expression result = kUnknownExpression;
もう1度sconsを実行。
$ cd v8-read-only $ sudo scons ・・・ scons: done building targets.
よし!入った!!
サンプルを動かす
$ cd v8-read-only $ sudo scons sample=shell $ ls -l shell -rwxr-xr-x 1 root 3.1M 11月 23 00:16 shell* $ ./shell > var a = 'This is sample of v8!'; > print(a); This is sample of v8!
javascriptが動きました。やほほい。