masalibの日記

システム開発、運用と猫の写真ブログです

CentOS 6.xにnode.js(v8系)をインストールする

準備

今入っているやつがあれば削除する

$ sudo yum remove nodejs

で消しました。
事前にいれておくべきパッケージをインストールする

$ sudo yum install -y gcc-c++ make

インストール

リポジトリのインストールをインストールする

$ sudo rpm -Uvh https://rpm.nodesource.com/pub_8.x/el/6/x86_64/nodejs-8.9.4-1nodesource.x86_64.rpm

2018/02/14時点のバージョンは8.9.4だけどバージョンアップする可能性があるので下記のページで確認してからインストール
https://rpm.nodesource.com//pub_8.x/el/6/x86_64/

もしv9系をいれたい場合は下記を確認してインストール
https://rpm.nodesource.com//pub_9.x/el/6/x86_64/

$ sudo rpm -Uvh https://rpm.nodesource.com/pub_9.x/el/6/x86_64/nodejs-9.5.0-1nodesource.x86_64.rpm

Node v10以降のインストールの注意点

Node v10以降はC ++ 14サポートにgcc 4.9以降を必要とするようです
Centos 6は1年以上メンテナンスのみになっているので、
Node v10以降の使用が必要な場合はOSをアップグレードすることをお勧めします。

下記のエラーがでたらOS依存です
cc1plus: error: unrecognized command line option "-std=gnu++1y"
自分のエラーログ

make: Entering directory `/var/www/masalib-gatsby-blog3/node_modules/deasync/build'
  CXX(target) Release/obj.target/deasync/src/deasync.o
cc1plus: error: unrecognized command line option "-std=gnu++1y"
make: *** [Release/obj.target/deasync/src/deasync.o] Error 1
make: Leaving directory `/var/www/masalib-gatsby-blog3/node_modules/deasync/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack     at ChildProcess.emit (events.js:197:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:254:12)
gyp ERR! System Linux 2.6.32-573.7.1.el6.x86_64
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /var/www/masalib-gatsby-blog3/node_modules/deasync
gyp ERR! node -v v11.12.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
Build failed


それでもv10系をいれたい場合は下記を確認してインストール
https://rpm.nodesource.com/pub_10.x/el/6/x86_64/

$ sudo rpm -Uvh https://rpm.nodesource.com/pub_10.x/el/6/x86_64/nodejs-10.15.3-1nodesource.x86_64.rpm

それでもv11系をいれたい場合は下記を確認してインストール
https://rpm.nodesource.com/pub_11.x/el/6/x86_64/

$ sudo rpm -Uvh https://rpm.nodesource.com/pub_11.x/el/6/x86_64/nodejs-11.12.0-1nodesource.x86_64.rpm

確認

$ node -v 

v8.9.4が表示されればOKです

参考URL

https://qiita.com/zaburo/items/a69ab94f707454a5bbe7

Node.js超入門

Node.js超入門

あとiptabelsの設定で3000ポートを許可しないとアクセスできない。ローカルだったので停止した

service iptables stop
chkconfig iptables off
chkconfig --list | grep iptables

SElinuxが動いていると上手く動かなかった。諦めた

SElinuxの停止
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/security-enhanced_linux/sect-security-enhanced_linux-working_with_selinux-enabling_and_disabling_selinux