Linux
AWS
npm

aws linuxにnpmを導入する

今までなんとなく作業していたので、メモに残す


環境

aws linux

$ cat /etc/system-release

Amazon Linux AMI release 2018.03


インストールまとめ

# リポジトリの取得

$ curl -sL https://rpm.nodesource.com/setup_8.x | sudo bash -

# nodejsのインストール
$ sudo yum install -y nodejs

# 確認
$ npm -v


作業ログ

nodejsとnpmをインストール

sudo yum install nodejs npm --enablerepo=epel

npmのインストール完了。しかし、バージョンが古い。

$ npm -v

1.3.6

なので、バージョンアップする

npm install -g npm  

(-gはグローバルにするオプション)

しかし、下記エラーが発生

$ npm install -g npm                                                                                                                                                    

npm http GET https://registry.npmjs.org/npm
npm http GET https://registry.npmjs.org/npm
npm http GET https://registry.npmjs.org/npm
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! 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 ERR! System Linux 4.14.62-65.117.amzn1.x86_64
npm ERR! command "node" "/usr/bin/npm" "install" "-g" "npm"
npm ERR! cwd /home/ec2-user
npm ERR! node -v v0.10.48
npm ERR! npm -v 1.3.6
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/ec2-user/npm-debug.log
npm ERR! not ok code 0

ssl通信使用がonになっている生で発生している模様。下記コマンドでoffにする。

(参考 : https://stackoverflow.com/questions/45884752/npm-err-code-unable-to-get-issuer-cert-locally)

npm config set registry http://registry.npmjs.org/

# または、 npm config set strict-ssl false

その後、再実行。

※sudoつけるとコケるんでsudoはつけずに実行する。

バージョンを確認すると下記エラーが発生。

$ npm -v

/usr/lib/node_modules/npm/bin/npm-cli.js:84
let notifier = require('update-notifier')({pkg})
^^^^^^^^
SyntaxError: Unexpected identifier
at Module._compile (module.js:439:25)
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 Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:945:3

epelでのインストールが原因の模様

(参考 : https://cpoint-lab.co.jp/article/201811/centos-7-%E3%81%A7epel%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%81%AEnpm%E3%81%A7%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88%E3%82%92%E8%A1%8C%E3%81%86%E3%81%A8npm%E3%81%8C%E6%B6%88/)

よってリポジトリからインストールを行う。

一度アンインストール。

$ sudo yum -y remove npm

リポジトリの取得。

curl -sL https://rpm.nodesource.com/setup_8.x | sudo bash -

nodejsのインストールコマンドで完了する。

sudo yum install -y nodejs

バージョン確認

$ npm -v

6.4.1

作業完了。