web-dev-qa-db-ja.com

rvm / usr / bin / env:Ruby no such fileエラー

システム全体にrvm + Rubyをインストールしました。

which Ruby
/usr/local/rvm/rubies/Ruby-2.1.1/bin/Ruby

そして:

/usr/bin/env: Ruby: No such file or directory

それ以外はすべて正常に動作し、実行可能ファイルにRubyの直接パスを入れると正常に動作します。

6
user25389

PATHは、envプログラムが実行可能ファイルを検索するために使用するものです。このユーザーごとに($ HOME/.bashrcで)変更できます。そのためには、nano $HOME/.bashrcを実行し、最後の行に移動して、新しい行を追加します

export PATH=$PATH:/usr/local/rvm/rubies/Ruby-2.1.1/bin

システムレベルで変更するには、Sudo nano /etc/login.defsを選択し、この行を変更します

ENV_PATH        PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

ENV_PATH        PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/rvm/rubies/Ruby-2.1.1/bin
4
Elliott Frisch

これはやや古い質問であることに気づきましたが、この問題を特定するために1日以上を費やしました。そして、rvmラッパーを使用して、ベストプラクティスの確実なタイプのソリューションだと思いました。

/usr/bin/env Rubyは、選択したRubyバージョンを使用する機能を提供するため、ハードコードされたディレクトリパスを使用して実行可能なシェルスクリプト(/bin内)を編集する必要はありません。それらを機能させる(これは他の場所で修正案として見たことがあります)。

上記の回答で述べたように、キーは$PATH/etc/environment設定ですが、別の解決策を思いつきました。

RVMは、インストールされているすべてのRubyバージョンのシンボリックリンクディレクトリと、/usr/local/rvm/wrappers/のエイリアスを提供します。

使用するRubyバージョンに関連付けられているラッパーディレクトリを使用するように$PATH varを設定した場合.

PATH="/usr/local/rvm/wrappers/Ruby-1.9.3-p547:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

/usr/bin/env Ruby_commandが機能するようにRVM環境を設定します。

少なくともこれでこの問題は解決しました。これにより、誰かが時間を節約できることを願っています。

1
Va As

私は最近この問題に直面し、異なるアプローチをとったので、共有することを考えました。これは、上記のディレクトリにRubyファイルが存在しない場合に発生します。そのため、ディレクトリにRubyファイルへのシンボリックリンクを作成すると、エラーが修正されます。

cd/usr/bin/env

ln -s /usr/local/rvm/rubies/Ruby-2.1.1/bin/Ruby

0
Nihanth Dara

同じエラーが出ました

#!/usr/bin/env Rubyはスクリプトの先頭にあり、

rvm /usr/bin/env: Ruby no such file error

スクリプトを実行した場合。

私の解決策は見つけるのが難しいほど簡単でした:

スクリプト/ソースコードエディターでの改行のエンコードは、「ウィンドウスタイル(CR + LF)」に設定されていました。

「unixスタイル(LF)」に切り替えてスクリプトを再度保存すると、エラーはなくなりました。

キャリッジリターン(CR)記号が「Ruby」の後ろに残っているようで、Ruby filname.scriptはありませんが、エラーにつながるRuby\R filename.scriptはありません。

0
Kai