CentOS 5.4で、node.js, socket.io
wget, gitが必要なのでyumでインストール
# yum install wget git Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * extras: www.ftp.ne.jp * updates: www.ftp.ne.jp Setting up Install Process No package git available. Resolving Dependencies
-
- > Running transaction check
- > Finished Dependency Resolution
wgetはインストールOKだけど、gitはリポジトリにないみたい。
http://d.hatena.ne.jp/uk_oasis/20090807/1249633626
ここを見ると、dagのリポジトリをyumに追加すればいいみたい。
# vi /etc/yum.repos.d/CentOS-Base.repo 以下を追加して保存。 [dag] name=Dag RPM Repository for Redhat EL5 baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag gpgcheck=1 enabled=1 gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
gitをインストール。
# yum install git Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * extras: www.ftp.ne.jp * updates: www.ftp.ne.jp addons | 951 B 00:00 base | 1.1 kB 00:00 dag | 1.1 kB 00:00 dag/primary | 4.1 MB 00:05 dag 11214/11214 extras | 2.1 kB 00:00 updates | 1.9 kB 00:00 Setting up Install Process Resolving Dependencies
-
- > Running transaction check
- > Package git.i386 0:1.7.8.2-2.el5.rf set to be updated
- > Processing Dependency: perl-Git = 1.7.8.2-2.el5.rf for package: git
- > Processing Dependency: perl(Git) for package: git
- > Running transaction check
- > Finished Dependency Resolution
- > Running transaction check
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
nvmのソースコードをcheckout
$ git clone git://github.com/creationix/nvm.git ~/.nvm Cloning into '/home/sai/.nvm'... remote: Counting objects: 291, done. remote: Compressing objects: 100% (157/157), done. remote: Total 291 (delta 156), reused 256 (delta 126) Receiving objects: 100% (291/291), 40.28 KiB, done. Resolving deltas: 100% (156/156), done.
.bashrcにnvm.shを書いておく。
$ echo . ~/.nvm/nvm.sh >> ~/.bashrc $ . ~/.bashrc
install nodeとuse
とりあえず、現時点で旧安定版とされているv0.4.12をインストール。
$ nvm install v0.4.12 ...ビルドのメッセージが流れます Waf: Leaving directory `/home/sai/.nvm/src/node-v0.4.12/build' 'build' finished successfully (3m7.228s) Waf: Entering directory `/home/sai/.nvm/src/node-v0.4.12/build' DEST_OS: linux DEST_CPU: ia32 Parallel Jobs: 1 Product type: program * installing deps/libeio/eio.h as /home/sai/.nvm/v0.4.12/include/node/eio.h * installing deps/v8/include/v8.h as /home/sai/.nvm/v0.4.12/include/node/v8.h * installing deps/v8/include/v8-preparser.h as /home/sai/.nvm/v0.4.12/include/node/v8-preparser.h * installing deps/v8/include/v8-debug.h as /home/sai/.nvm/v0.4.12/include/node/v8-debug.h * installing deps/v8/include/v8-profiler.h as /home/sai/.nvm/v0.4.12/include/node/v8-profiler.h * installing deps/v8/include/v8stdint.h as /home/sai/.nvm/v0.4.12/include/node/v8stdint.h * installing deps/v8/include/v8-testing.h as /home/sai/.nvm/v0.4.12/include/node/v8-testing.h * installing deps/libev/ev.h as /home/sai/.nvm/v0.4.12/include/node/ev.h * installing build/default/config.h as /home/sai/.nvm/v0.4.12/include/node/config.h * installing src/node.h as /home/sai/.nvm/v0.4.12/include/node/node.h * installing src/node_object_wrap.h as /home/sai/.nvm/v0.4.12/include/node/node_object_wrap.h * installing src/node_buffer.h as /home/sai/.nvm/v0.4.12/include/node/node_buffer.h * installing src/node_events.h as /home/sai/.nvm/v0.4.12/include/node/node_events.h * installing src/node_version.h as /home/sai/.nvm/v0.4.12/include/node/node_version.h * installing doc/node.1 as /home/sai/.nvm/v0.4.12/share/man/man1/node.1 * installing tools/node-waf as /home/sai/.nvm/v0.4.12/bin/node-waf * installing tools/wafadmin/py3kfixes.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/py3kfixes.py * installing tools/wafadmin/__init__.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/__init__.py * installing tools/wafadmin/Options.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Options.py * installing tools/wafadmin/Environment.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Environment.py * installing tools/wafadmin/Task.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Task.py * installing tools/wafadmin/Scripting.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Scripting.py * installing tools/wafadmin/Logs.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Logs.py * installing tools/wafadmin/pproc.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/pproc.py * installing tools/wafadmin/Runner.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Runner.py * installing tools/wafadmin/Node.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Node.py * installing tools/wafadmin/Build.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Build.py * installing tools/wafadmin/ansiterm.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/ansiterm.py * installing tools/wafadmin/Configure.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Configure.py * installing tools/wafadmin/Utils.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Utils.py * installing tools/wafadmin/TaskGen.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/TaskGen.py * installing tools/wafadmin/Constants.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Constants.py * installing tools/wafadmin/Tools/libtool.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/libtool.py * installing tools/wafadmin/Tools/gcc.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/gcc.py * installing tools/wafadmin/Tools/compiler_d.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/compiler_d.py * installing tools/wafadmin/Tools/winres.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/winres.py * installing tools/wafadmin/Tools/cc.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/cc.py * installing tools/wafadmin/Tools/compiler_cc.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/compiler_cc.py * installing tools/wafadmin/Tools/cxx.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/cxx.py * installing tools/wafadmin/Tools/misc.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/misc.py * installing tools/wafadmin/Tools/__init__.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/__init__.py * installing tools/wafadmin/Tools/gxx.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/gxx.py * installing tools/wafadmin/Tools/ccroot.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/ccroot.py * installing tools/wafadmin/Tools/compiler_cxx.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/compiler_cxx.py * installing tools/wafadmin/Tools/d.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/d.py * installing tools/wafadmin/Tools/intltool.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/intltool.py * installing tools/wafadmin/Tools/preproc.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/preproc.py * installing tools/wafadmin/Tools/python.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/python.py * installing tools/wafadmin/Tools/dmd.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/dmd.py * installing tools/wafadmin/Tools/nasm.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/nasm.py * installing tools/wafadmin/Tools/xlc.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/xlc.py * installing tools/wafadmin/Tools/ar.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/ar.py * installing tools/wafadmin/Tools/xlcxx.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/xlcxx.py * installing tools/wafadmin/Tools/suncxx.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/suncxx.py * installing tools/wafadmin/Tools/config_c.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/config_c.py * installing tools/wafadmin/Tools/suncc.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/suncc.py * installing tools/wafadmin/Tools/gob2.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/gob2.py * installing tools/wafadmin/Tools/unittestw.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/unittestw.py * installing tools/wafadmin/Tools/node_addon.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/node_addon.py * installing tools/wafadmin/Tools/gdc.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/gdc.py * installing tools/wafadmin/Tools/icc.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/icc.py * installing tools/wafadmin/Tools/gnu_dirs.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/gnu_dirs.py * installing tools/wafadmin/Tools/osx.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/osx.py * installing tools/wafadmin/Tools/icpc.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/icpc.py * installing tools/wafadmin/Tools/gas.py as /home/sai/.nvm/v0.4.12/lib/node/wafadmin/Tools/gas.py * installing build/default/tools/nodejs.pc as /home/sai/.nvm/v0.4.12/lib/pkgconfig/nodejs.pc * installing build/default/node as /home/sai/.nvm/v0.4.12/bin/node * installing build/default/src/node_config.h as /home/sai/.nvm/v0.4.12/include/node/node_config.h Waf: Leaving directory `/home/sai/.nvm/src/node-v0.4.12/build' 'install' finished successfully (0.112s) Now using node v0.4.12 /usr/bin/which: no npm in (/home/sai/.nvm/v0.4.12/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/sai/bin) Installing npm... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 7881 100 7881 0 0 7339 0 0:00:01 0:00:01 --:--:-- 48054 tar=/bin/tar version: tar (GNU tar) 1.15.1 install npm@1.0 fetching: http://registry.npmjs.org/npm/-/npm-1.0.106.tgz 0.4.12 1.0.106 cleanup prefix=/home/sai/.nvm/v0.4.12 All clean! /home/sai/.nvm/v0.4.12/bin/npm -> /home/sai/.nvm/v0.4.12/lib/node_modules/npm/bin/npm-cli.js /home/sai/.nvm/v0.4.12/bin/npm_g -> /home/sai/.nvm/v0.4.12/lib/node_modules/npm/bin/npm-cli.js /home/sai/.nvm/v0.4.12/bin/npm-g -> /home/sai/.nvm/v0.4.12/lib/node_modules/npm/bin/npm-cli.js npm@1.0.106 /home/sai/.nvm/v0.4.12/lib/node_modules/npm It worked
pythonのファイルがけっこう入ってきますね。
nvm useを実行。
$ nvm use v0.4.12 Now using node v0.4.12 $ node --version v0.4.12
nodeが動作しているのと、バージョンまで確認できました。
npmのインストール
$ curl http://npmjs.org/install.sh | sh % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 7881 100 7881 0 0 6843 0 0:00:01 0:00:01 --:--:-- 44275 tar=/bin/tar version: tar (GNU tar) 1.15.1 install npm@1.0 fetching: http://registry.npmjs.org/npm/-/npm-1.0.106.tgz 0.4.12 1.0.106 cleanup prefix=/home/sai/.nvm/v0.4.12 All clean! /home/sai/.nvm/v0.4.12/bin/npm -> /home/sai/.nvm/v0.4.12/lib/node_modules/npm/bin/npm-cli.js /home/sai/.nvm/v0.4.12/bin/npm_g -> /home/sai/.nvm/v0.4.12/lib/node_modules/npm/bin/npm-cli.js /home/sai/.nvm/v0.4.12/bin/npm-g -> /home/sai/.nvm/v0.4.12/lib/node_modules/npm/bin/npm-cli.js npm@1.0.106 /home/sai/.nvm/v0.4.12/lib/node_modules/npm It worked
ejs, expressのインストール
$ npm install ejs express ejs@0.6.1 ./node_modules/ejs express@2.5.8 ./node_modules/express ├── mkdirp@0.3.0 ├── mime@1.2.4 ├── qs@0.4.2 └── connect@1.8.5
socket.ioもまとめて入れちゃいたいところですが、後述の理由でエラーになるのでまだ入れません。
tarのアップデート
CentOS 5.4のyumのアップデートできるtarのバージョンは、1.15までらしく、socket.ioのパッケージ解凍でコケるらしい。
tar-1.26をダウンロードしてきてインストール。
デフォルトで入っているtarはカーネル関連でのrpm依存関係があるため、デフォルトのtarのアンインストールはせずに、1.26をソースからインストールすることにしました('A`)rpmでの管理が好きな自分としては屈辱的…
$ wget http://ftp.gnu.org/gnu/tar/tar-1.26.tar.gz $ tar xfz tar-1.26.tar.gz $ cd tar-1.26 $ configure $ make $ sudo make install