node.jsとnpmのインストールをしたメモ(CentOS さくらのVPS)

node.jsでミニアプリを作ってみるテスト.の下準備

node.jsを少し触ってみたいと言うことで,ミニアプリを作ってみることにしました.今回はその下準備の過程をメモ.

Ubuntu+nginxでnode.js+npmのインストールからデプロイまで - mizchi logを参考に,node.jsとnpmのインストールをします.

nginxは,nginx+apacheでちょっぴり快適なWebサーバーを目指してみる(CentOS さくらのVPS) でインストール済みなので割愛.

node.jsのインストール

% git clone git://github.com/ry/node.git
% cd node
% ./configure
Checking for program g++ or c++          : /usr/bin/g++
Checking for program cpp                 : /usr/bin/cpp
Checking for program ar                  : /usr/bin/ar
Checking for program ranlib              : /usr/bin/ranlib
Checking for g++                         : ok 
Checking for program gcc or cc           : /usr/bin/gcc
Checking for gcc                         : ok 
Checking for library dl                  : yes
Checking for openssl                     : not found
Checking for function SSL_library_init   : not found
Checking for header openssl/crypto.h     : not found
/home/ahomu/node/wscript:303: error: Could not autodetect OpenSSL support. Make sure OpenSSL development packages are installed. Use configure --without-ssl to disable this message.

あらま.opensslは入っていたけど,openssl-develが入っていなかったので

% sudo yum install openssl-devel

で,openssl-develをインストール.

% make
% sudo make install

無事に完了.

npmのインストール

まずはnpm本体のインストール.

$ sudo chown -R $USER /usr/local
$ curl http://npmjs.org/install.sh | sh
$ sudo chown -R root /usr/local
$ sudo npm install express

パスが通らない

% sudo npm install mysql
/usr/bin/env: node: No such file or directory

いざ実行すると,パスが通ってないとか言われてみたり.結構困っていろいろ調べたのですが,同居人にアドバイスもらって真相に近づき,最終的にはrubyインストールしてあるのにsudoすると「/usr/bin/env: ruby: そのようなファイルやディレクトリはありません」と言われるを参考に,以下のように.zshrcに設定を追加.

export PATH=/usr/local/bin:$PATH
alias envsudo="sudo env PATH=$PATH"
% source ~/.zshrc

更新した.zshrcを読み込んで,これで解決しました.

2011/02/24 : sudoのことを誤解してました.sudoersを編集すればokっぽいです.後述.

2011/02/24追記

sudo時の環境変数周りの設定は,visudoとかで/etc/sudoersを編集すればよかったみたいです.

Defaults    env_reset
Defaults:%wheel    !env_reset
Defaults    env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR \
                        LS_COLORS MAIL PS1 PS2 QTDIR USERNAME \
                        LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION \
                        LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC \
                        LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS \
                        _XKB_CHARSET XAUTHORITY"

こんな感じで,wheelグループはenv_resetが行われないようにしたら,パスが通って通常のsudoで実行できるようになります.

npmでモジュールをインストール

ここでは,node.jsとMySQLで割と普通のデータベースウェブアプリを作ってみるチュートリアル | さくらたんどっとびーずを参考に実装を試すつもりなので,それに倣ってモジュールを3つインストール.

% sudo npm install mysql
% sudo npm install express
% sudo npm install ejs

npmもふつうに使えるようになったので,これで初期セットアップはOK.

次は実装

次回以降でアプリの実装に進みます.作るアプリは,面白くも何ともないのですが,たぶん諸般の事情でタイムカード的なアプリの予定.