1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

WSL2にROS導入メモ:syntax error near unexpected token `('でcatkin_makeなどが通らない際の解決法

Posted at

問題

WSL2上でROS環境の構築をしようとしたものの、source /opt/ros/melodic/setup.bashやsource ~/catkin_ws/devel/setup.bash、catkin_makeをすると以下のようなエラーが出てしまった。
-bash: /tmp/setup.sh.Mj4Jcya6cq: line 4: syntax error near unexpected token '('

原因

これは、環境変数PATHに()を含む文字列が含まれてしまっていることが原因である。
筆者の場合はWindowsのc/Program Files (x86)がこれに該当した。

解決法

そこで、WSL2のPATHからWindowsのPATHを抜くことを考える。
WSL2のPATHにWindowsのPATHを含むかどうかは/etc/wsl.confで指定することができる。(デフォルトでは存在しないが自分で作成すればWSL2が起動時に勝手に参照してくれる)

WSL2のターミナルで


cd /etc/wsl.conf
sudo vim /etc/wsl.conf

などとして/etc/wsl.confを開き、以下のように編集する。

[interop]
appendWindowsPath = false

その後、WSL2を再起動する。
ターミナルを閉じた後にWindows Powershellで以下のようにコマンドを打つとWSL2を終了させることができる。


wsl -t <ディストリビューション名>

現在実行中のディストリビューション名は以下のコマンドで確認できる


wsl -l -v

終了後、再度起動するとエラーが出てこなくなった。

参考

  1. Windows10 WSL2にLinux居城を爆誕させる
  2. [WSL2] Slow completion due to Windows PATH being appended to Linux PATH
  3. (PCではなく)WSL2のみを終了、再起動する方法
1
2
0

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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?