Ubuntu16.04 へ Node.js のインストール

Ubuntu16.04 へ Node.js のインストール

ドットインストールでFirebase でウェブページを公開するにあたり
node.js のインストールが必要になったのでメモ

ubuntu16 node.js インストール
で検索

Ubuntu16.04にnodejsをインストール

を参考に実践

sudo apt install -y nodejs npm


node.js と npm をインストール

なお npm コマンドについては
npm よく使うコマンドまとめ


Node.js と npm 再入門(その4:便利コマンド)

を参考に

sudo npm cache clean

でキャッシュの削除

sudo npm install n -g


npmでnをインストール

これは
nで任意のバージョンのNode.jsをインストールするため

このあたりに関しては
Ubuntu 16.04 x64 に n を使用して Nodejs をインストールする

を参考に

sudo n 10.16.0

で ver 10.16 の node.js をインストール

sudo ln -sf /usr/local/bin/node /usr/bin/node

でシンボリックリンクを作成

ln コマンドのオプションについては
s シンボリックリンク作成
f 登録内容の上書き
となっている

詳しくは
lnコマンドについて詳しくまとめました 【Linuxコマンド集】

を参考に

これでインストールができたら

node -v

でバージョン確認

node.js 概要とインストール

node.js 概要とインストール

Node.js入門 (全16回)

を参考に Node.js を使ってみることに

node.js は大量のリクエストを高速にさばくための
アプリケーションをつくるプラットフォーム

主に大規模システムの大量リクエストを高速にさばくときに使われる

APIとかメッセージング部分など

公式サイトは
http://nodejs.org/

http://nodejs.org/api/
で命令の詳細をみることができる

node.js を使うために必要な知識は
html

そして node.js は java script を使っているので
これも使う

あとサーバーが Linux なので linux コマンドも使う

使用する開発環境は
vagrant で作成した仮想マシンの centOS

今回使用するDBは MongoDB

しかし、インストール方法が動画で紹介されていないため
検索してみた

最初にCentOS のバージョンを調べる

uname -r 

で調べたけど
これはカーネルのバージョンだった

結果は
2.6.32-358.18.1.el6.x86_64

UbuntuとCentOS のバージョン確認方法

を参考に

CentOS のバージョンを調べたいので

 cat /etc/redhat-release 

これで
CentOS release 6.4 (Final)
と判明

次に
node.jsをyumでインストールする(centos6.5)

を参考に
yum で node.js をインストール

rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

でリポジトリを追加

しかし、すでに以前 vagrant で環境作ったときに
これはやっていた

sudo yum install nodejs npm --enablerepo=epel

でインストール

インストール完了後

node -v 

でバージョン確認

v0.10.24
となっていればOK

Node.js の概要

Node.js はサーバーサイドのjavaScriptを実行できる
javaScript で webアプリを構築できるプラットフォーム
のこと
Node.js のコアには
Google Chrome 用に開発された javaScript エンジンV8 が搭載されている
Node.js のアーキテクチャの特徴は
ノンブロッキングI/O
ノンブロッキングI/Oは
ある処理のデータ送受信の完了を待たずに
他の処理を開始する方式
一般に
CPU、メモりの伝送速度に比べると
ストレージやネットワークの伝送速度は遅い
そのため、ブロッキングI/O
つまり、ストレージとかネットワークのデータ送受信の完了を待つ方式だと
多くの待ち時間が発生する
イメージとしては
外付けHDDからデータを読み込んで実行すると
遅いというかんじ
これが
ノンブロッキングI/Oだと
こういった待ち時間を
他の処理に割り当てれるので
1つのスレッドで大量の処理ができる
処理完了を待ってから
次の処理を行いたいのなら
コールバックを使う
リクエスト、コールバック発生に関しては
イベントとして扱われていて
あるイベントに関する処理が完了したら
次のイベントを処理する
というようなイベントループで動作する

node.js準備

ubuntu12.04 LTS の場合
sudo apt-get -y install build-essential
で開発環境導入
続いてnode.jsインストール
wget http://nodejs.org/dist/v0.8.16/node-v0.8.16.tar.gz
tar zxvf node-v0.8.16.tar.gz
sudo mv node-v0.8.16 /usr/local/
cd /usr/local/node-v0.8.16
sudo ./configure
sudo make install
node –version
次に、アプリ格納ディレクトリ作成
mkdir c4_5001
mkdir c4_5001/public
cd c4_5001
npm install socket.io express
Express はNode.jsのための
Webアプリのフレームワーク
npm は
rpm みたいな
node.js のためのパッケージマネージャー
必要なモジュールを自動ダウンロードする
どちらかというと
apt-get
とか
yum
みたいなかんじかもしれない

ToDo管理Webアプリ

ToDo管理のWebアプリ
日経Linux 2012年5月号を参考に作成
まずは付録DVDからサンプルコピー
mkdir SimpleTodo
cp -rp /media/LIN201205/article/rensai_android/* ~/SimpleTodo/
cd ~/SimpleTo
node ./web.js
で実行
ただし、前回のお絵かきアプリが動いているとだめみたいなので
一度再起動しました
この状態で
safariで
IPアドレス:3000/index.html
へアクセスします
サーバーのIPは
あらかじめ
ifconfig
で調べておきます

node.jsメモ

日経Linux 2012年4月号を参考に
サーバーサイドjava script
Node.jsの勉強中

今回のはちょっとわかりにくいので
メモしてみました
まず、前回までのファイルの完成版が
付録DVDにあるので
これを使います
というか、これを使わないと
ファイル名とかが被ってわかりにくくなります
ちなみに、開発環境は
ubuntu11.10 32bit
前回までのファイルが
~/public
にあるので
バックアップとります
mkdir bak
mv ~/public/* bak/
あとは、
cp /media/LIN201204/article/rensai_android/* ~/public
でサンプルをコピーしてから
始めるとわかりやすくなります
ちなみに、サンプルをコピーした場合、