昔対処して忘れてたのでメモしておく.
Insecure worldほにゃららがやたら出る
WSLでVagrantを使ったりすると以下の様なメッセージが表示される.
warning: Insecure world writable dir /mnt/c in PATH, mode 040777
Rubyは親切なので権限が過剰じゃないかと気にしてくれているらしい.
WSLはUnixとは違うので権限がやたら与えられている.これはしょうがない.
対処方法
見つかった方法は2つ.
- 環境変数PATHにWindowsのパスを含めない
- Rubyのオプションで警告を無視する
環境変数PATHにWindowsのパスを含めない
Windowsコマンドを使うために追加されているパスを消してしまう.
export PATH="$(echo "$PATH" | sed -r -e 's;:/mnt/[^:]+;;g')"
これでWSLからWindowsコマンドは使えなくなるが, Rubyの警告は出る.
Rubyのオプションで警告を無視する
ubuntuの~/.profileの末尾に以下を追加.
export RUBYOPT=-W0
これでWSLのRubyでは常に警告が抑制される.
どちらで行くか
開発でWSL使う人は必然的にパスを削除する側になるでしょう.
(警告無視して開発するわけにもいきませんし)
開発はVM上でという方は警告抑制が割といい気がします.
ちょっとしたスクリプティングなら気にならないので.
参考
この記事は実質, このURLを探すのに苦労したのでメモってるだけ.