最新版のnode jsがインストールに苦労した話

IT

普段node.jsを使わないのですが、いろいろ試してみたくて重い腰を上げて使ってみることにしました。
ためしにyum updateでnode.jsをアップデートかけたところ、大昔にインストールした0.10というバージョンが残っていることが判明。

しかし現在8系統が出ているため、既存の0.10を削除し、新たにyum install -y nodejsをしてみたところ、また0.10がインストールされるという現象に陥りました。

さらにnpmというライブラリなどがインストールできず、様々なライブラリが使用不可になるという有様・・・


npm -v

を実行しただけでこのようなエラーまで出るように・・・


/usr/lib/node_modules/npm/lib/config/cmd-list.js:113
module.exports.aliases = Object.assign({}, shorthands, affordances)
^
TypeError: Object function Object() { [native code] } has no method 'assign'
at Object. (/usr/lib/node_modules/npm/lib/config/cmd-list.js:113:33)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at /usr/lib/node_modules/npm/lib/npm.js:37:17
at Object. (/usr/lib/node_modules/npm/lib/npm.js:471:3)
at Module._compile (module.js:456:26)

とにかくnode.jsに関係あるライブラリ等が全て使えなくなるという現象が起こりました。

しかし、原因を探ったところ意外なところに原因がありました。

原因はリポジトリが古かった?

結論から言うと、node.jsをyumでインストールする時のリポジトリが古かったせいだとわかりました。

普通にyum remove nodejsで削除しても、古い所からインストールしていたら意味がありませんよね。

そこで以下のコマンドを実行しました。


curl -sL https://rpm.nodesource.com/setup_8.x | bash -
yum install -y nodejs

この2行を実行したところ、新しいリポジトリからnode.jsをインストールすることができました。
早速node -vやnpm -vを実行しても、最新版がそれぞれインストールされていました。

まとめ

まさかリポジトリが古いとは思っても見ませんでしたが、以前リポジトリ周りで苦労したことがあり、その経験が活きました!
もし皆さんも、古いバージョンしかインストールできなくなってしまった場合には、一度リポジトリを疑ってみてください。

コメント

タイトルとURLをコピーしました