在AWS Linux上安装npm

由于之前只是随意地进行工作,所以我决定将其记录在备忘录中。

环境

亚马逊云服务的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

任务日志

安装Node.js和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通信的问题似乎是已经启用并且正在发生。请使用下面的命令关闭。
(参考: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来执行,否则会失败。

当我检查版本时,出现了下面的错误。

$ 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

从[参考链接](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/)中可以看出,安装epel导致了问题。

因此要從存儲庫進行安裝。

曾经卸载过一次。

$ sudo yum -y remove npm

获取代码仓库。

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

用Node.js的安装命令完成。

sudo yum install -y nodejs

版本确认

$ npm -v
6.4.1

任务已经完成。

广告
将在 10 秒后关闭
bannerAds