Node.js
Serversman@VPS
v0.12.3

初心者がnode.jsをアップデートしようとして数日詰まった話【DTI ServersMan@VPS】

初投稿です。初心者です。あまりイジメないでください。

DTIが提供しているServersMan@VPS。性能にしてはお財布に優しい。CentOS 7, RAM 1GB, HDD 50GBで467円+税!
このVPSでWebSocketを使いたくなって、node.jsを使おうとしたところ、

Terminal
Now using node v0.12.3 (npm v)

$ node -v
v0.12.3

と出てくる。
本家ページに行くと分かるが、node.jsの最新版はv8.4.0(2017年9月7日現在)である。v0.12.3なんて死ぬほど古い。

というわけでnode.jsをアップデートしてみました!
この先地獄を見ることになるとは誰も思わなかったのである……

注意

ServersManVPSサポートと別件でやり取りしていた際に「node.jsをアップデートしてもいいの?」と素人丸出しなことを聞いたところ、

ServersMan@VPSサービスでは、提供範囲とサポートの範囲が
基本的にサーバーの正常稼動のみとなります。

OSのみならず、お客様にて各種アップデートを行われる場合、
アップデート後の動作につきましては弊社では動作保証ができ
かねてしまいます事から、サポートの対象外となります
(一部抜粋)

と返答が来ました。
VPSを使う皆様方におかれましては当然のことと思いますが、この先の話は全てサポート対象外のことですのでご留意ください。

追記

2017年9月11日、再度サーバに繋げるとv0.12.3の文字……もう意味が分からんとです(n度目)
仕方ないのでもう一度バージョン上げました。

Terminal
$ node -v
v0.12.3

$ nvm use v8.4.0
Now using node v8.4.0 (npm v5.3.0)

ついでにnpmもバージョンがあがっていたので更新

Terminal
$ npm i -g npm
(出力略)
$ npm -v
5.4.1

何をやったか

先に結論だけ書きます。
node.jsのバージョンアップ、バージョン切り替え
↑これ丸パクリしてやりました。以上です。ありがとうございます。

Terminal
$ nvm ls
->      v0.12.3
         system
node -> stable (-> v0.12.3) (default)
stable -> 0.12 (-> v0.12.3) (default)
iojs -> iojs- (-> N/A) (default)

$ nvm ls-remote
        v0.1.14
        v0.1.15
(中略)
        v0.12.2
->      v0.12.3
        v0.12.4
(中略)
         v8.3.0
         v8.4.0
(以下略)

$ nvm install v8.4.0
######################################################################## 100.0%
Checksums empty
Now using node v8.4.0 (npm v5.3.0)

$ node -v
v8.4.0
$ npm -v
5.3.0

何が問題になったのか

「アップデートなんて楽勝やろ」と思って最初に試みたのが
CentOS 7.x で最新の Node.js をインストールする方法
↑このページに記載されている方法。
滞りなくnode.jsの削除→再インストールまで終わった……はずだった。
しかし作業終了後もなぜかバージョンはv0.12.3のまま。
パッケージを直接指定(https://rpm.nodesource.com/pub_8.x/el/7/x86_64/nodesource-release-el7-1.noarch.rpm)してもダメだった。
原因不明。


続いて行ったのが
Node.jsとnpmをアップデートする方法
↑これ。見つけたときは「簡単じゃん余裕じゃん!」と思った(こなみ)
やはり滞りなく進んだかに見えたが、結局バージョンはv0.12.3のまま。
こちらも原因不明。


あと↓これも試した。
ServersMan@VPS node.js のインストール
圧縮ファイルの場所はhttp://nodejs.org/dist/v8.4.0/node-v8.4.0.tar.gz
……がッ……ダメッ……!
というかmakeコマンドで2時間弱もかかるとは思わなかった。もうマヂ無理……


他にもいろんなことやった気がするけれど、覚えてないというか、そもそもあんまり試していないのか……
一番困ったのが「エラーも吐かずちゃんと動作したのに、なぜかバージョンが上がらない」という現象だった。これが原因で(主にモチベの低下により)作業は数日間に及んだ。許さないnode.js
実を言うと、前節の「何をやったか」でやったことも実は一度試したものの、そのときはなぜかバージョンが上がらなかった。もう何が何やら……

nodeのキャッシュを消してみたり、サーバを再起動したりしたものの、結局何が決め手でバージョンアップに成功したのか不明のまま(ド素人)。
サーバの再起動でさらなる悲劇が起きたのはまた別の話。

よく分からないけれど、今回の自分のケースでは「何をやったか」の通りにやってできたので、同様の事象で困っている方の助けになれば……


というわけで初の投稿現場からは以上です。
(ご質問を頂いても多分回答できるほどの知識は)ないです。

余談:DTIのサーバの再起動(体験記)

本件でDTIのサーバを再起動したら、サーバに接続できなくなった。意味分かんない。
起きた事象は↓これだった。
CentOS7 yum update 後、VPSサーバーにアクセスができなくなった

せっかく安い値段で提供していただいているわけで、安さに性能にサポートにと、全部を求めることは当然できません。DTIを責めるつもりは微塵もありませんが、サーバの復帰まで7日間(5営業日)を要しています。問題が起きたときの対応スピードはそこまで高くはありませんので、自衛できる部分はしっかり自衛しておきましょう。
(自分はそんなサーバを頻繁に使うことはないので大した問題にはなりませんでしたが)

それでも、ガチ素人な自分みたいなユーザにも丁寧に対応していただきました。
DTI最高やで。SIMも契約しているけれど、通信品質も問題なし! みんなDTI、使おう!!!(突然の胡麻擂り)