teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

文章の体裁を整え,tyotto

2017/11/14 08:54

投稿

miyabi-sun
miyabi-sun

スコア21472

answer CHANGED
@@ -1,6 +1,3 @@
1
- 色々と情報が足りませんので、エスパー解答します。
2
- どれどれ…?
3
-
4
1
  > ```Bash
5
2
  /home/vagrant/socket.io/node_modules/socket.io/node_modules/engine.io/node_modules/uws/uws.js:3
6
3
  const http = require('http');
@@ -8,39 +5,36 @@
8
5
  SyntaxError: Use of const in strict mode.
9
6
  ```
10
7
 
11
- わかりました。
12
- その環境はVagrant + VirtualBoxで立ち上げた仮想マシン内のCentOSですね?
8
+ Vagrant + VirtualBoxで立ち上げた仮想マシン内のCentOSですね?
9
+ 例えばMacでHomebrew等を利用してNode.jsを導入しても、
10
+ 仮想マシンとは違う環境になってしまうので、Node.jsの環境は共有されません。
13
11
 
14
- MacでHomebrew等を利用してNode.jsを導入しても、
15
- 仮想マシンとは違う環境になってしまうので、入れ直しになってしまいます。
16
-
17
12
  ---
18
13
 
19
14
  > 調べるとnode.jsのバージョン(v0.10.48)が古くsocket.ioに対応していないために起こるエラーであるとのことでした
20
15
 
16
+ おっしゃる通りNode.jsのバージョンが古い事が原因です。
17
+
21
18
  エラーメッセージを読む限りだと…
22
- なるほど、エラーが出ているのはsocket.ioライブラリの中です
19
+ エラーが出ているのはsocket.ioライブラリの中で発生しています。
23
20
  `node_modules/socket.io/node_modules/engine.io/node_modules/uws/uws.js`
24
21
 
25
22
  具体的な原因はuws.jsファイルの3行目、`const`を使って変数宣言していますが、
26
23
  Node.jsのバージョンが古すぎてまだ未対応の書式と言っています。
27
24
  つまり、そもそもNode.jsがコードの解析を諦めてエラーを出しているので実行すらしていません。
28
25
 
29
- お見事!おっしゃる通りNode.jsのバージョンが古い事が原因です。
30
-
31
26
  ---
32
27
 
33
28
  > インストールをし直しても、npmから更新をかけても、バージョンが0.10.48から更新されません。
34
29
 
35
- CentOSはyumのパッケージが勝手に更新されませんので、
30
+ CentOSが採用しているパッケージ管理ソフト、yumはソフトのバージョンを枯た状態に保つ事を好みす。
31
+ なのでyumのパッケージで単純にアップデートを繰り返しても、Node.jsパッケージが更新される事はありません。
36
- 何も対策せずにyumのパジでNode.jsをインスールすると、非常に古いバージョンのNode.jsインストールされてしまいます。
32
+ ですので、質問文の状況陥ってしまい、いくらyumをアプデートしても古いバージョンのNode.jsしかインストールされなかったわけで
37
- この辺の仕様が面倒でCentOSは個人的に嫌いです。
38
33
 
39
- さて、私の好き嫌いはどうでも良いのでアップデート方法を紹介します。
40
34
  まずは古いNode.jsは下記の記事を参考にアンインストールしましょう。
41
35
  [CentOS 6.xにLTS(4.3.0)のnode.jsをインストールする](https://qiita.com/zaburo/items/a69ab94f707454a5bbe7)
42
36
 
43
- おっと、インストールはまだしないでください
37
+ おっと、インストールはまだしないでください。
44
38
  [Node.jsの公式サイトのダウンロード](https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora)で、最新バージョンのNode.jsのインストール方法が紹介されています。
45
39
 
46
40
  ---
@@ -48,4 +42,5 @@
48
42
  おまけ
49
43
 
50
44
  私は[nodebrew](https://qiita.com/kentana20/items/05f1a4af9812398863fa)というNode.jsのバージョン管理ツールを利用しています。
51
- ちょっと初期導入に癖がありますが、バージョンにすぐ追従出来るので便利に活用しています。
45
+ ちょっと初期導入に癖がありますが、バージョンにすぐ追従出来るので便利に活用しています。
46
+ NVMといったパッケージ管理ツールもありますので、色々調べてみてください。

1

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

2017/11/14 08:54

投稿

miyabi-sun
miyabi-sun

スコア21472

answer CHANGED
@@ -1,7 +1,6 @@
1
1
  色々と情報が足りませんので、エスパー解答します。
2
2
  どれどれ…?
3
3
 
4
-
5
4
  > ```Bash
6
5
  /home/vagrant/socket.io/node_modules/socket.io/node_modules/engine.io/node_modules/uws/uws.js:3
7
6
  const http = require('http');
@@ -10,16 +9,43 @@
10
9
  ```
11
10
 
12
11
  わかりました。
13
- その環境はVagrant + VirtualBoxで立ち上げたCentOSですね?
12
+ その環境はVagrant + VirtualBoxで立ち上げた仮想マシン内のCentOSですね?
14
- 確かにCentOSはyumのパッケージが勝手に更新されませんので、
15
- 何も対策せずにyumのパッケージでNode.jsをインストールすると、非常に古いバージョンのNode.jsがインストールされてしまいます。
16
13
 
17
- ただ、`socket.io`が原因というのはまだわかりません。
14
+ MacでHomebrew等を利用してNode.jsを導入しても、
18
- うのもエラー原因はsocket.ioが悪とはいせん
15
+ 仮想マシンは違環境になってしまうで、入れ直しになってしまいま
19
16
 
17
+ ---
18
+
19
+ > 調べるとnode.jsのバージョン(v0.10.48)が古くsocket.ioに対応していないために起こるエラーであるとのことでした
20
+
21
+ エラーメッセージを読む限りだと…
22
+ なるほど、エラーが出ているのはsocket.ioライブラリの中ですね。
23
+ `node_modules/socket.io/node_modules/engine.io/node_modules/uws/uws.js`
24
+
20
- uws.jsファイルの3行目、`const`を使って変数宣言していますが、
25
+ 具体的な原因はuws.jsファイルの3行目、`const`を使って変数宣言していますが、
21
26
  Node.jsのバージョンが古すぎてまだ未対応の書式と言っています。
22
- `const``var`に書き換え様子見まょう
27
+ つまり、そもそもNode.jsがコード解析諦めエラーているので実行すらしていません
23
28
 
29
+ お見事!おっしゃる通りNode.jsのバージョンが古い事が原因です。
30
+
31
+ ---
32
+
33
+ > インストールをし直しても、npmから更新をかけても、バージョンが0.10.48から更新されません。
34
+
35
+ CentOSはyumのパッケージが勝手に更新されませんので、
24
- しくは`yum uninstall nodejs`一度Node.jsをンインストールてしまい
36
+ 対策せずにyumのパッケージでNode.jsをストールすると、非常に古いバージョンのNode.jsがインストールされてしまいます。
37
+ この辺の仕様が面倒でCentOSは個人的に嫌いです。
38
+
39
+ さて、私の好き嫌いはどうでも良いのでアップデート方法を紹介します。
40
+ まずは古いNode.jsは下記の記事を参考にアンインストールしましょう。
41
+ [CentOS 6.xにLTS(4.3.0)のnode.jsをインストールする](https://qiita.com/zaburo/items/a69ab94f707454a5bbe7)
42
+
43
+ おっと、インストールはまだしないでくださいね。
44
+ [Node.jsの公式サイトのダウンロード](https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora)で、最新バージョンのNode.jsのインストール方法が紹介されています。
45
+
46
+ ---
47
+
48
+ おまけ
49
+
25
- [nodebrew](https://qiita.com/kentana20/items/05f1a4af9812398863fa)というNode.jsのバージョン管理ツールをツールを使って最新のNode.jsを利用してください。
50
+ 私は[nodebrew](https://qiita.com/kentana20/items/05f1a4af9812398863fa)というNode.jsのバージョン管理ツールを利用しています
51
+ ちょっと初期導入に癖がありますが、バージョンにすぐ追従出来るので便利に活用しています。