node.jsとnpmのインストールをしたメモ(CentOS さくらのVPS)
Posted: Updated:
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.
次は実装
次回以降でアプリの実装に進みます.作るアプリは,面白くも何ともないのですが,たぶん諸般の事情でタイムカード的なアプリの予定.