解決の見通しが立っていない記事です。
Windows10かBash on Ubuntu on Windows(Bow)でBashを使えるようになりました!
MacでもWindowsでも、似たような操作で作業できるっていいですよね!
qiita.com
自宅のPCはWindows8.1でWindows10の無料アップデートをしなくって最近後悔してます。
それでなんですが、まったく問題なく使えているかというと、ちょこちょこ問題がでています。
直近では、BoW環境でnode.jsのパッケージ管理マネジャー「npm」がエラーになってしまって、困ってます。
どなたか、うまくいく方がいればコメントをいただけると幸いです。
実行環境
- Windows10のWindows on Bashを使用
バージョン
tohu@9141-063578:~/git/node/sample_basic$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"
node.jsとnpmのバージョン
tohu@9141-063578:~/git/node/sample_basic$ npm -v
5.3.0
tohu@9141-063578:~/git/node/sample_basic$ node -v
v8.5.0
事象
以下のように、npmでなにかしらインストールを行おうとすると、エラーになっちゃいます。
試しにnpmでexpressをインストール
tohu@9141-063578:~/git/node/sample_basic$ npm install expresss
Unhandled rejection Error: ENOENT: no such file or directory, chmod '/mnt/c/Users/home/tohu/.npm/_cacache/content-v2/sha512/e7/26/497b29c02da80908b90563a758d58b73f084a698ee4d9b01652c3c74ae38bef8b6bfa92ee2f7f1bd88aa2e5b690ab8b0f8735e32703ef2e4d50990dfb5c4'
npm ERR! cb() never called!
npm ERR! This is an error with npm itself. Please report this error at:
npm ERR! <https://github.com/npm/npm/issues>
npm ERR! A complete log of this run can be found in:
npm ERR! /mnt/c/Users/home/tohu/.npm/_logs/2017-09-13T08_53_31_272Z-debug.log
「no such file or directory」といわれているディレクトリを見ても、ちゃんとファイルがいたりするので謎です。
ためしに、nodebrewでnode.jsのバージョンを「v7.6.0」にかえて、npmのバージョンが「4.1.2」だとうまくいったりするので、npmに原因があるのでしょうか。
nodeのバージョン一覧
tohu@9141-063578:~/git/node/sample_basic$ nodebrew list
v7.6.0
v8.5.0
v7.6.0を有効にする
tohu@9141-063578:~/git/node/sample_basic$ nodebrew use v7.6.0
use v7.6.0
node.jsとnpmのバージョン
tohu@9141-063578:~/git/node/sample_basic$ node -v
v7.6.0
tohu@9141-063578:~/git/node/sample_basic$ npm -v
4.1.2
tohu@9141-063578:~/git/node/sample_basic$
追記(2017/9/19) まだだめ
ちょこちょことリリースが来てるみたいなので、アップデートした。
リリースノートを見ると、「npm is not working」がfixされたよ!とか書いてあるので、期待したんだ。
が、結論をいえば事象は相変わらずだった。
msdn.microsoft.com
アップデート
$ sudo apt-get update
$ sudo apt-get upgrade
updateがやけに遅かったので、終わった後に、リポジトリを日本に変更した。
※以下の記事を参考にさせてていただきました。
Bash on Ubuntu on Windowsのapt-get(apt)を高速化する - Engineer's Notebook
バージョンを確認
tohu@9141-063578:~/git/node/sample_basic$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"
バージョンが上がっているのか、よくわからず。。。
githubにも同じような質問があるのだけれども、リリースノート分の修正が反映されているって、どうやって判断すればいいのかしら。
github.com
※ちなみにWindowsそのもののバージョン