WSL2にROS導入メモ:syntax error near unexpected token `('でcatkin_makeなどが通らない際の解決法
問題
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
終了後、再度起動するとエラーが出てこなくなった。
参考
Author And Source
この問題について(WSL2にROS導入メモ:syntax error near unexpected token `('でcatkin_makeなどが通らない際の解決法), 我々は、より多くの情報をここで見つけました https://qiita.com/Decwest/items/05eab6abddd587f7e40a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .