2016/12/08(木) [n年前の日記]
#1 [ruby][windows] Rubyのバージョンを切り替えるuruが動作しなくて悩んだり
Windows上でRubyのバージョンを切り替えることができる uru というツールがあるのだけど。気づいたら動作しなくなっていて悩んだり。環境は Windows10 x64。
症状としては、uru 23 といった具合に uru TAG を打ち込めばRubyのバージョンを切り替えられるはずなのだけど、妙なエラーメッセージが表示されて切り替わってくれない。
さて、なんでだろ。
症状としては、uru 23 といった具合に uru TAG を打ち込めばRubyのバージョンを切り替えられるはずなのだけど、妙なエラーメッセージが表示されて切り替わってくれない。
> uru version uru v0.8.3 [windows/386 go1.7.3] > uru ls 187mingw32 : ruby 1.8.7 (2013-06-27 patchlevel 374) [i386-mingw32] 187mswin32 : ruby 1.8.7 (2010-12-23 patchlevel 330) [i386-mswin32] 19 : ruby 1.9.3p551 (2014-11-13) [i386-mingw32] 200 : ruby 2.0.0p648 (2015-12-16) [i386-mingw32] 21 : ruby 2.1.9p490 (2016-03-30 revision 54437) [i386-mingw32] 220mswin32 : ruby 2.2.0p0 (2014-12-25 revision 49005) [i386-mswin32_100] 23 : ruby 2.3.3p222 (2016-11-21 revision 56859) [i386-mingw32] => system : ruby 2.2.6p396 (2016-11-15 revision 56800) [i386-mingw32] > uru 23 ---> now using ruby 2.3.3-p222 tagged as `23` 'autogenerated' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 入力行が長すぎます。
さて、なんでだろ。
◎ ソースネクストのせいだった。 :
昨晩、ソースネクストで販売されてる本格翻訳9ダウンロード版を購入して、Windows10 x64上でインストールしたのだけど。
その本格翻訳9が、環境変数PATHに漢字交じりのパス、「D:\Program Files (x86)\SOURCENEXT\本格翻訳9\lic」を追加していて。そのパスが存在すると uru が異常動作することが分かった。
試しに mklink を使って、件の「本格翻訳9\」に「honyaku\」というシンボリックリンクを割り当てて、それでパスを置き換えてみたら、uru が動作した…。
想像するに、uru というツールは英語圏のことしか考えてない作りのツールで、環境変数PATHの中に2バイト文字だか多バイト文字だかが含まれていると異常動作する、ということだろうなと。
その本格翻訳9が、環境変数PATHに漢字交じりのパス、「D:\Program Files (x86)\SOURCENEXT\本格翻訳9\lic」を追加していて。そのパスが存在すると uru が異常動作することが分かった。
試しに mklink を使って、件の「本格翻訳9\」に「honyaku\」というシンボリックリンクを割り当てて、それでパスを置き換えてみたら、uru が動作した…。
> uru 23 ---> now using ruby 2.3.3-p222 tagged as `23` > ruby --version ruby 2.3.3p222 (2016-11-21 revision 56859) [i386-mingw32]
想像するに、uru というツールは英語圏のことしか考えてない作りのツールで、環境変数PATHの中に2バイト文字だか多バイト文字だかが含まれていると異常動作する、ということだろうなと。
◎ フォルダ名に日本語文字列は避けるべき。 :
てなわけで、本格翻訳9に限った話じゃないけど、ソフトをインストールする際は日本語文字列を含むインストールパスは避けるべし、というよく見かける教訓にこうして遭遇、みたいな。
というか、環境変数PATHに対して無頓着に漢字交じりのパスを追加してしまう、そんなデフォルト値でソフトを販売してるあたりがあかんのではないか、お前のせいで他のアプリが動かなくなったやんけ、一体どうしてくれるんや、という気もするのだけど、まあ、所詮はソースネクストだから…。
もっとも、日本語文字列が含まれてると異常動作するツールってのがそもそもどうなのよ、という気もするけれど。このあたり、このツールに限った話じゃないし…。英語圏の人に言ってみてもどうせキョトンとされるだけだろうし。下手すると「英語環境以外で使うな」とか平気で言い出しかねんし。ソースのコメントすら「英語で書け」と強要してくる方々だから…。
それにしても、Windows 3.1 や Windows 95 を使ってた時代ならともかく、20年経った現在においても日本語文字列を含んだパスを使うと不具合が出るというのは、なんだかな。
というか、環境変数PATHに対して無頓着に漢字交じりのパスを追加してしまう、そんなデフォルト値でソフトを販売してるあたりがあかんのではないか、お前のせいで他のアプリが動かなくなったやんけ、一体どうしてくれるんや、という気もするのだけど、まあ、所詮はソースネクストだから…。
もっとも、日本語文字列が含まれてると異常動作するツールってのがそもそもどうなのよ、という気もするけれど。このあたり、このツールに限った話じゃないし…。英語圏の人に言ってみてもどうせキョトンとされるだけだろうし。下手すると「英語環境以外で使うな」とか平気で言い出しかねんし。ソースのコメントすら「英語で書け」と強要してくる方々だから…。
それにしても、Windows 3.1 や Windows 95 を使ってた時代ならともかく、20年経った現在においても日本語文字列を含んだパスを使うと不具合が出るというのは、なんだかな。
[ ツッコむ ]
#2 [windows] 環境変数PATHを見直した
Windows10上で uru が動かなくなった関係で、ついでに環境変数PATHを見直すことにした。そもそもPATHがとんでもなく長い状態になっていたわけで。
解決策をググってみたところ、シンボリックリンクを利用して短く見せかける方法があるようで。
_Windowsのパスの長さ制限に引っかかったので短くしてみた - Qiita
他にも、例えば _Rapid Environment Editor を使って、8.3の短縮パスで置き換えていく方法もあるけれど。その方法を試したところ、何のパスが登録されてるのか全く分からない状態になってしまったので、今回はシンボリックリンクを使って短くしていくことに。
解決策をググってみたところ、シンボリックリンクを利用して短く見せかける方法があるようで。
_Windowsのパスの長さ制限に引っかかったので短くしてみた - Qiita
他にも、例えば _Rapid Environment Editor を使って、8.3の短縮パスで置き換えていく方法もあるけれど。その方法を試したところ、何のパスが登録されてるのか全く分からない状態になってしまったので、今回はシンボリックリンクを使って短くしていくことに。
[ ツッコむ ]
#3 [windows] 本格翻訳9を購入
ポイントが溜まってたのでソースネクストから本格翻訳9ダウンロード版を購入。
少し使ってみたけど…。翻訳速度が遅い…。自分のPCが非力ってことかもしれないけど。
使い勝手が悪い…。Webページを翻訳できればありがたいのだけど、IE用のプラグインしか存在しない。しかもページ単位で翻訳する感じになるようで。翻訳後のページのレイアウトはグチャグチャで、翻訳精度云々以前に、違う意味で読みづらい。
アプリ本体側の翻訳結果表示ウインドウは、表示フォント変更すらできない模様。
少し使ってみたけど…。翻訳速度が遅い…。自分のPCが非力ってことかもしれないけど。
使い勝手が悪い…。Webページを翻訳できればありがたいのだけど、IE用のプラグインしか存在しない。しかもページ単位で翻訳する感じになるようで。翻訳後のページのレイアウトはグチャグチャで、翻訳精度云々以前に、違う意味で読みづらい。
アプリ本体側の翻訳結果表示ウインドウは、表示フォント変更すらできない模様。
[ ツッコむ ]
以上、1 日分です。