cafegale(LeafCage備忘録)

LeafCage備忘録(はてなダイアリー)と統一しました。

windows使ってるとHOMEの場所が分散したりパスの問題で悩まされる(愚痴

実に疲れる。
windowsのパスの解釈がおかしかったり、環境変数HOMEを無視するソフトの存在が。*1

環境変数HOMEを設定していようと、ある特定のソフトは関係なくwindowsのユーザプロファイルディレクトリ(C:\Users\{ユーザー名}\)の方を見に行くし、
MSYS2のopenssh は MSYS2の /home/{ユーザー名} の方を見に行く。(go言語やhaskellで作られたソフトとかがそんなことをしてくる)

ここにきて、ghq が、Git bash から起動したときには正常に、ghq.root~が含まれているとき環境変数HOMEに解釈してくれるが、MSYS2のシェルからだと~の解釈がおかしいことに気づいた;
環境変数HOMEに D:\home\ を設定していたら、D:\home\ghq ではなく、D:\d\home\ghqghqルートディレクトリに設定してくる*2

こんなに苦悶を味わうのなら、いっそのこと環境変数HOMEを設定するのはやめてデフォルトのwindowsユーザプロファイルディレクトリを使ってる方が幸せになれる気がしてきた。
ただ、環境変数HOMEを設定していないとおかしなところにファイルを作られる気がするのと、精神衛生によくないんだが
またはもうwslだけを使うのがいいのだろうが、windowsローカルで動かす方が気持ちがいいからそういうわけにはいかないんだよなぁ。

windowsの中だけで過ごしているうちは幸せで、だが*nix系のツールや作法に足を踏み出すと急激にSUN値が上がっていく。

そう言えばそもそもnvm-windowsをMSYS2で実行できないから仕方なくghqでnodistを取ってこようとしたことから始まったyak shavingだった。

なぜか MSYS2上で nvm use {バージョン番号} しても、nodejsのnpmのPATHが通されないことから始まって、調べてみると NVM_HOME とか NVM_SYMLINK が自動で設定されなくて、仕方なく手動で設定したのに相変わらず nodeに PATH通してくれなくて、こうなったらと直接PATHに nodeのパスを加えてもなぜか削除されて、しょうがないから nvm-windows を使うのをあきらめてnodistを使うようにしたという、もう本当に文字にするとしょーもないことで何時間も使って、挙句にこのPATH問題だぜ?
MSYS2が原因の問題が起きたのは今に始まったことじゃないが、こんなにいろいろ起こるとMSYS2を使うのをやめた方が幸せになれるんじゃないかという気すらしてくる。

↑nvm-windows がうまく動かないときには環境変数NVM_HOMEとNVM_SYMLINKを手動で設定したうえでこの2つをPATHに加えたらいいんだって

参考:nvm-windows 導入 - Qiita
わかるかこんなの!

全般的にWindowsに疲れた

パスの問題、文字コードの問題、もっとずっと昔に解決されているべき問題だったのだ。

*1:Windowsには文字化けエンコード問題もあって折につけ私を悩ませてきた

*2:ghqについて、windowsghq.rootを設定せず、%USERPROFILE%/ghq というデフォルト設定で運用するとMSYS2でもほかのシェルでも同じように使えて一番スマートだろう。ghqに限らず、パスをデフォルト設定から変更するとおかしくなるソフトはもうあきらめてデフォで使うしかない