54698


# 前提

こちらの質問でご指摘を受け、速度の問題で実行環境をUbuntuに変更しました。  
[ruby - コマンドプロンプトでの改行 -
スタック・オーバーフロー](https://ja.stackoverflow.com/questions/54578/%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%97%E3%83%AD%E3%83%B3%E3%83%97%E3%83%88%E3%81%A7%E3%81%AE%E6%94%B9%E8%A1%8C?noredirect=1#comment58365_54578)

それまでは開発をサクラエディタ、実行をコマンドプロンプトで行っていました。

# 発生した問題

しかしコマンドプロンプトでやっていたようにファイルを実行しようとすると

[code]

    ruby:No such file or directory --ファイル名　(LoadError)
    
[/code]

と、表示されてしまいます。

手順は

  1. Ubuntuを開く
  2. 入力待ち（名前@LAPTOP-B5M3JJ58:~$)になる
  3. ruby と入力する
  4. 実行したいファイルをドラッグしてくる
  5. エンターキーを押す

という手順でやっています。

よろしくお願いいたします。

## 補足情報（OS, ツールのバージョンなど）

  * Windows10
  * サクラエディタ 2.2.0.1(文字コードはUTF-8で作成)
  * Ubuntu 18.04.1 LTS
  * Ubuntu内のruby 2.5.1p57 [x86_64-linux-gnu]


CC BY-SA 4.0
2019-04-30T17:00:33.943
54612
2019-05-05T01:09:34.027
2019-05-05T01:09:34.027
2808
34119
question
ruby ubuntu wsl
開発環境をWindowsからUbuntu(WSL)に移行したところ、LoadErrorが発生する


おそらく Windows 上で WSL の Ubuntu を動かしてらっしゃるのだと思います。

WSL Ubuntu と Windows ではファイルの扱い方が異なり、Windows が認識している「ファイルの場所」と Ubuntu
が認識している「ファイルの場所」が異なります。ファイルを Ubuntu 上の Bash へドラッグ＆ドロップすると Windows
側が認識しているファイルパスがペーストされますが、このままだと Ubuntu からは認識できないため「ファイルが見つからない」というエラーになります。

WSL Ubuntu から Windows 側にある Ruby プログラムのファイルを実行するには、以下の手順を辿るのが良いでしょう。

  1. `cd` コマンドでプログラムのファイルがあるディレクトリまで移動する。
  2. `ls` コマンドで確認する。
  3. `ruby 〈ファイル名〉` で実行する。

この際、Windows の C ドライブ `C:\～` は Ubuntu 側では `/mnt/c/～`
というパスになっていることに注意してください。たとえば Windows 側のファイルが

[code]

    C:\Users\nek\Documents\example.rb
    
[/code]

であるなら、Ubuntu 側からは

[code]

    /mnt/c/Users/nek/Documents/example.rb
    
[/code]

にあるように見えています。このため、各手順では次のようにします。

  1. `cd /mnt/c/Users/nek/Documents` で移動。
  2. `ls` で `example.rb` が表示されるか確認。
  3. `ruby example.rb` で実行。


CC BY-SA 4.0
2019-05-03T18:11:35.153
54698
2019-05-03T18:11:35.153
19110
54612
answer