質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

1回答

1103閲覧

UbuntuとWSL環境のvscodeで何が違うのか

kinnobitou

総合スコア2

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

0クリップ

投稿2022/09/06 09:38

以下の手順でnvmのインストールをUbuntu 20.04のターミナルで行いました。

$sudo apt-get install curl $curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

その結果、Ubuntuではnvmのインストールに失敗したのかnvmが認識されません。

$ nvm ls Command 'nvm' not found, did you mean: command 'nsm' from deb linuxptp (1.9.2-1) command 'nam' from deb nam (1.15-5build1) command 'pvm' from deb pvm (3.4.6-2build2) command 'vm' from deb mgetty-voice (1.2.1-1) command 'nvi' from deb nvi (1.81.6-15build1) command 'nm' from deb binutils (2.34-6ubuntu1.3) command 'nvme' from deb nvme-cli (1.9-1ubuntu0.1) command 'npm' from deb npm (6.14.4+ds-1ubuntu2) command 'nim' from deb nim (1.0.6-1) command 'lvm' from deb lvm2 (2.03.07-1ubuntu1) command 'nvim' from deb neovim (0.4.3-3) command 'kvm' from deb qemu-kvm (1:4.2-3ubuntu6.23) command 'num' from deb quickcal (2.4-1) Try: sudo apt install <deb name>

しかし、Remote WSLによってUbuntu 20.04に接続しているVScodeのターミナルからだとnvmを認識していました。

$ nvm ls -> v16.2.0 default -> node (-> v16.2.0) iojs -> N/A (default) unstable -> N/A (default) node -> stable (-> v16.2.0) (default) stable -> 16.2 (-> v16.2.0) (default) lts/* -> lts/fermium (-> N/A) lts/argon -> v4.9.1 (-> N/A) lts/boron -> v6.17.1 (-> N/A) lts/carbon -> v8.17.0 (-> N/A) lts/dubnium -> v10.24.1 (-> N/A) lts/erbium -> v12.22.1 (-> N/A) lts/fermium -> v14.17.0 (-> N/A)

なぜこのようなことが起きるのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

https://github.com/nvm-sh/nvm#troubleshooting-on-linux

Troubleshooting on Linux

On Linux, after running the install script, if you get nvm: command not found or see no feedback from your terminal after you type command -v nvm, simply close your current terminal, open a new terminal, and try verifying again. Alternatively, you can run the following commands for the different shells on the command line:

意訳:
Linuxでスクリプトを実行してインストールをした後、すぐnvmコマンドを認識しない事があります。
その時はターミナルを再起動してみて、改めてcommand -v nvmで確認してみてください。


要するにOSに限らずコマンドを認識する為の作法として
環境変数PATHに記載されているディレクトリに実行ファイルがあれば、それをコマンドとして実行する作りになっています。

ターミナルを立ち上げた時に~/.bashrc等のファイルを裏で実行する仕組みを利用して
自動的にターミナル越しによる操作をする時は環境変数PATHを編集して
新しく導入したモジュールのコマンドを有効化させるという作業を行っています。

nvmがターミナルの再起動を促していると言うことは、
恐らくこの~/..bashrcファイルの末尾に環境変数PATHを加工する処理を加える等の事をしているのでしょう。

なのでVSCodeを改めて起動したら、
それにひっついているターミナルは改めて~/.bashrcを読み込んでいたのだろうと考えられます。

投稿2022/09/06 10:00

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kinnobitou

2022/09/06 10:25

Ubuntuでsource ~/.bashrcを実行したところ、VScodeと同じような挙動になりました。違いはbashrcの設定が反映されているかどうかだったんですね。bashrc関連の知識が無いので勉強します。ありがとうございました。
kinnobitou

2022/09/06 11:21 編集

Ubuntuの起動時には毎回bash_profileが実行されていて、bashrcの内容が反映されていなかったのではないかと思います。VScodeのターミナルのbashは起動時にbashrcの内容が実行されていたのかなと。 追記)bash_profileに追記をしてbashrcを参照するようにしたところ、Ubuntuでもnvmのインストールが確認できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問