何気なく epel のリポジトリから nodejs をインストールしたら npm の実行でハマったのでメモ。
例えばこんなエラーです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | npm ERR! Error: UNABLE_TO_GET_ISSUER_CERT_LOCALLY npm ERR! at SecurePair.<anonymous> (tls.js:1430:32) npm ERR! at SecurePair.emit (events.js:92:17) npm ERR! at SecurePair.maybeInitFinished (tls.js:1029:10) npm ERR! at CleartextStream.read [as _read] (tls.js:521:13) npm ERR! at CleartextStream.Readable.read (_stream_readable.js:341:10) npm ERR! at EncryptedStream.write [as _write] (tls.js:418:25) npm ERR! at doWrite (_stream_writable.js:226:10) npm ERR! at writeOrBuffer (_stream_writable.js:216:5) npm ERR! at EncryptedStream.Writable.write (_stream_writable.js:183:11) npm ERR! at write (_stream_readable.js:602:24) npm ERR! at flow (_stream_readable.js:611:7) npm ERR! at Socket.pipeOnReadable (_stream_readable.js:643:5) npm ERR! If you need help, you may report this log at: npm ERR! <http://github.com/isaacs/npm/issues> npm ERR! or email it to: npm ERR! <npm-@googlegroups.com> |
これは、以下のどちらかで対処できると書かれているのですが、他にもいたるところでエラーに遭遇します。
npm config set registry http://registry.npmjs.org/
npm config set strict-ssl false
今回は、この問題を回避して AmazonLinux で yum から npm 環境を構築したいと思います。
epelからのnodejsのインストール
そもそも、yum ではリポジトリを指定しないと node のパッケージが出てきません。
1 | $ yum list | grep nodejs |
epel を指定するとパッケージが該当するのですが、いかにもバージョンが古いです。
1 2 3 4 5 6 7 8 | $ yum list --enablerepo=epel | grep nodejs nodejs.i686 0.10.48-3.el6 epel nodejs.x86_64 0.10.48-3.el6 epel nodejs-abbrev.noarch 1.0.4-6.el6 epel nodejs-ain2.noarch 1.3.2-1.el6 epel nodejs-amdefine.noarch 0.0.4-2.el6 epel ... |
0.10.x 系は 2016 年まで遡ります。なぜ、epel だとこんなに古いものを取り扱っているのかは謎です。
Node.js 0.10.48 – 2016-10-18
これでは、npm の他のパッケージとの依存関係エラーも多く発生するわけです。
nodesourceからのnodejsのインストール
nodejs の公式のインストール手順を見ると CentOS 系だと以下の手順になるようです。
$ curl -sL https://rpm.nodesource.com/setup_10.x | bash –
$ yum install gcc-c++ make
$ yum install nodejs
以下の記事でも書いたように newman を動かしたいので、ここでは v10 系を入れていますが、newman を使わない場合は最新の v12 を入れておくのがいいと思います。

これで以下のバージョンが入りました。
$ node -v
v10.16.3
$ npm -v
6.9.0
よくよく見ると、過去に自分でもこの手順でインストールしていました。たまにしかやらないとダメですね。

AmazonLinux の標準リポジトリから yum でサクッと入ってくれるといいのですが、AmazonLinux2 ではこの辺は改善されているのでしょうか?
NodeJS 12.x をインストールする手順は下記の記事をご覧ください。
