88
49

More than 5 years have passed since last update.

nodistでnpm6.2.0以降にアップデート出来なかった話

Last updated at Posted at 2018-09-12

nodistでnode.jsのv10.10.0(2018/09時点の最新版)をインストールした際に、npmのバージョンをv6.4.1にアップデートするのが上手くいかなくて手間取った話。


<UPDATE 2019/04/11>
久しぶりに確認に行ったら、nodistは0.9.1がリリースされていました。
本記事記載バージョンは0.8.8です。
最新版を利用すれば色々と問題解決すると思います(8/26一寸補足:この記事を参照した上で、再インストールして解消されている記事がありました)。
この記事を参考にする際には、お手元のバージョンを確認の上で読んでいただけるとお手間を取らせないで済むかと思います。
</UPDATE 2019/04/11>

<UPDATE 2019/02/27>
本文記載箇所以外にもいくつか修正ポイントがあるらしく、フォーク先のastrata-eu/nodist修正コミット内容もトラブルが解消しなければ参考になるなと思ってます。
</UPDATE 2019/02/27>

その道の人たちは問題なく解決できてる話だとは思いますが・・・。

>nodist 10.10.0
Installing 10.10.0
 10.10.0 [===============] 24164/24164 KiB 100% 0.0s
Installation successful.

>node --version
v10.10.0

>npm --version
4.0.5

nodistでnode.jsの最新版を指定しても、そのままではnpmは対応するバージョンにはならない( node.jsバージョン対応表)。

nodist npm matchでアップグレードを図るがエラー発生。
モジュールのDLあたりで失敗している。
nodist_npm_mach_error.PNG

メッセージ的には、DL用URLの問題な感じですね。
Error: Failed to read response from https://codeload.github.com/npm/npm/tar.gz/v6.4.1

どうも2018/07/14のv.6.2.0リリースから、リポジトリが移動した模様。

https://github.com/npm/npm
↓↓↓↓↓↓↓↓↓↓↓
https://github.com/npm/cli

既にPullReqは出てます。っが・・・・一月近くは反応なし(2018/09現在)。
https://github.com/marcelklehr/nodist/pull/217

nodistのgitコミット状況。今年はお忙しいのね。
nodist_commit状況.PNG

仕方がないので、PullReq同様URLを変更して対応。

nodist_npm_設定ファイル.PNG

Nodeistインストール先のlibディレクトリ下にある、npm.jsを修正(codeload.github.com/npm/npm ⇒ codeload.github.com/npm/cli)。

/**
 * Get a download URL for the version
 * @param {string} version
 * @return {string}
 */
NPMIST.downloadUrl = function(version){
  return 'https://codeload.github.com/npm/cli/tar.gz/vVERSION'
    .replace('VERSION',version.replace('v',''));
};

ところで、修正前に実行した「nodist npm match」の失敗で時点で、npmのバージョンdirができちゃいます。
nodist_npm_install状況.PNG

dirがあると「nodist npm match」はエラーにはならないけど、versionを確認するとエラー
nodist_npm_version_error.PNG

dir削除後にnpm matchさせれば無事にインストールされてアップデート完了
nodist_npm_match_success.PNG

・・・Qiita初投稿なので、お作法とか分かっていません。何かあったら優しく教えてください。

88
49
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
88
49