回答編集履歴

2

文章の体裁を整え,tyotto

2017/11/14 08:54

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -1,9 +1,3 @@
1
- 色々と情報が足りませんので、エスパー解答します。
2
-
3
- どれどれ…?
4
-
5
-
6
-
7
1
  > ```Bash
8
2
 
9
3
  /home/vagrant/socket.io/node_modules/socket.io/node_modules/engine.io/node_modules/uws/uws.js:3
@@ -18,15 +12,11 @@
18
12
 
19
13
 
20
14
 
21
- わかりまし
15
+ Vagrant + VirtualBoxで立ち上げ仮想マシン内のCentOSですね?
22
16
 
23
- その環境はVagrant + VirtualBoxで立ち上げた仮想マシン内のCentOSですね?
17
+ 例えばMacでHomebrew等を利用してNode.jsを導入しても、
24
18
 
25
-
26
-
27
- MacでHomebrew等を利用してNode.jsを導入しても、
28
-
29
- 仮想マシンとは違う環境になってしまうので、直しになってしいます
19
+ 仮想マシンとは違う環境になってしまうので、Node.jsの環境は共有されません
30
20
 
31
21
 
32
22
 
@@ -38,9 +28,13 @@
38
28
 
39
29
 
40
30
 
31
+ おっしゃる通りNode.jsのバージョンが古い事が原因です。
32
+
33
+
34
+
41
35
  エラーメッセージを読む限りだと…
42
36
 
43
- なるほど、エラーが出ているのはsocket.ioライブラリの中です
37
+ エラーが出ているのはsocket.ioライブラリの中で発生しています。
44
38
 
45
39
  `node_modules/socket.io/node_modules/engine.io/node_modules/uws/uws.js`
46
40
 
@@ -54,10 +48,6 @@
54
48
 
55
49
 
56
50
 
57
- お見事!おっしゃる通りNode.jsのバージョンが古い事が原因です。
58
-
59
-
60
-
61
51
  ---
62
52
 
63
53
 
@@ -66,15 +56,13 @@
66
56
 
67
57
 
68
58
 
69
- CentOSyumのパッケージが勝手更新されせんので、
59
+ CentOSが採用しているパッケージ管理ソフト、yumはソフトージョンを枯れた状態保つ事を好みす。
70
60
 
71
- 何も対策せずにyumのパッケージでNode.jsをインストルすると、非常に古いバーョンのNode.jsインストールされてしいます
61
+ なのでyumのパッケージで単純にアップデートを繰り返しても、Node.jsパッケージが更新される事はありせん
72
62
 
73
- 仕様が面倒でCentOSは個人的いです。
63
+ ですで、質問文状況陥ってしま、いくらyumをアップデートしても古いバージョンのNode.jsしかインストールされなかったわけです
74
64
 
75
65
 
76
-
77
- さて、私の好き嫌いはどうでも良いのでアップデート方法を紹介します。
78
66
 
79
67
  まずは古いNode.jsは下記の記事を参考にアンインストールしましょう。
80
68
 
@@ -82,7 +70,7 @@
82
70
 
83
71
 
84
72
 
85
- おっと、インストールはまだしないでください
73
+ おっと、インストールはまだしないでください。
86
74
 
87
75
  [Node.jsの公式サイトのダウンロード](https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora)で、最新バージョンのNode.jsのインストール方法が紹介されています。
88
76
 
@@ -99,3 +87,5 @@
99
87
  私は[nodebrew](https://qiita.com/kentana20/items/05f1a4af9812398863fa)というNode.jsのバージョン管理ツールを利用しています。
100
88
 
101
89
  ちょっと初期導入に癖がありますが、バージョンにすぐ追従出来るので便利に活用しています。
90
+
91
+ NVMといったパッケージ管理ツールもありますので、色々調べてみてください。

1

CentOSのバージョンアップの詳細を記載

2017/11/14 08:54

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -1,8 +1,6 @@
1
1
  色々と情報が足りませんので、エスパー解答します。
2
2
 
3
3
  どれどれ…?
4
-
5
-
6
4
 
7
5
 
8
6
 
@@ -22,28 +20,82 @@
22
20
 
23
21
  わかりました。
24
22
 
25
- その環境はVagrant + VirtualBoxで立ち上げたCentOSですね?
23
+ その環境はVagrant + VirtualBoxで立ち上げた仮想マシン内のCentOSですね?
26
24
 
25
+
26
+
27
+ MacでHomebrew等を利用してNode.jsを導入しても、
28
+
29
+ 仮想マシンとは違う環境になってしまうので、入れ直しになってしまいます。
30
+
31
+
32
+
33
+ ---
34
+
35
+
36
+
37
+ > 調べるとnode.jsのバージョン(v0.10.48)が古くsocket.ioに対応していないために起こるエラーであるとのことでした
38
+
39
+
40
+
41
+ エラーメッセージを読む限りだと…
42
+
43
+ なるほど、エラーが出ているのはsocket.ioライブラリの中ですね。
44
+
45
+ `node_modules/socket.io/node_modules/engine.io/node_modules/uws/uws.js`
46
+
47
+
48
+
49
+ 具体的な原因はuws.jsファイルの3行目、`const`を使って変数宣言していますが、
50
+
51
+ Node.jsのバージョンが古すぎてまだ未対応の書式と言っています。
52
+
53
+ つまり、そもそもNode.jsがコードの解析を諦めてエラーを出しているので実行すらしていません。
54
+
55
+
56
+
57
+ お見事!おっしゃる通りNode.jsのバージョンが古い事が原因です。
58
+
59
+
60
+
61
+ ---
62
+
63
+
64
+
65
+ > インストールをし直しても、npmから更新をかけても、バージョンが0.10.48から更新されません。
66
+
67
+
68
+
27
- 確かにCentOSはyumのパッケージが勝手に更新されませんので、
69
+ CentOSはyumのパッケージが勝手に更新されませんので、
28
70
 
29
71
  何も対策せずにyumのパッケージでNode.jsをインストールすると、非常に古いバージョンのNode.jsがインストールされてしまいます。
30
72
 
31
-
32
-
33
- ただ、`socket.io`が原因というのはまだわかりません。
34
-
35
- というもエラー原因はsocket.ioが悪いとはいません
73
+ 辺の仕様が面倒でCentOS個人的に嫌です
36
74
 
37
75
 
38
76
 
39
- uws.jsファイル3行目、`const`使って変数宣言ていますが、
77
+ さて、私好き嫌いはどうでも良いのでアップデート方法紹介します
40
78
 
41
- Node.jsのジョンが古すぎてだ未対応の書式と言っています
79
+ まずは古いNode.jsは下記記事を参考にアンインストルししょう
42
80
 
43
- `const`を`var`に書き換えて様子を見ましょう。
81
+ [CentOS 6.xにLTS(4.3.0)node.jsをインストールする](https://qiita.com/zaburo/items/a69ab94f707454a5bbe7)
44
82
 
45
83
 
46
84
 
47
- もしくは`yum uninstall nodejs`で一度Node.jsをアンインストールしてしま
85
+ おっと、インストールはまだでくださいね。
48
86
 
87
+ [Node.jsの公式サイトのダウンロード](https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora)で、最新バージョンのNode.jsのインストール方法が紹介されています。
88
+
89
+
90
+
91
+ ---
92
+
93
+
94
+
95
+ おまけ
96
+
97
+
98
+
49
- [nodebrew](https://qiita.com/kentana20/items/05f1a4af9812398863fa)というNode.jsのバージョン管理ツールをツールを使って最新のNode.jsを利用してください。
99
+ 私は[nodebrew](https://qiita.com/kentana20/items/05f1a4af9812398863fa)というNode.jsのバージョン管理ツールを利用しています
100
+
101
+ ちょっと初期導入に癖がありますが、バージョンにすぐ追従出来るので便利に活用しています。