web-dev-qa-db-ja.com

正しいRuby環境を指すように/ usr / bin / env Rubyを取得する方法は?

だから私はcgi Rubyスクリプトを作成していて、スクリプトファイルの先頭に次のものがありました。

#!/usr/bin/env Ruby
 require 'rubygems'
 require 'action_pack'
 require 'cgi'

「/ usr/bin/env:Ruby:No such file or directory」エラーとGoogle検索を取得しなかった数時間後、システムRuby 1.8.7をアンインストールしました(1.9.3もありました Sudo apt-get purge Ruby ruby​​gems を実行して、rvm経由でインストールします。それでもエラーが発生します。 「which Ruby」と入力すると、/home/homeuser/.rvm/rubies/Ruby-1.9.3-p194/bin/Rubyが返されます。この問題を解決する方法についての洞察はありますか?

Echo $ PATHの結果は次のとおりです。

/home/homeuser/.rvm/gems/Ruby-1.9.3-p194@rsoc326/bin:/home/homeuser/.rvm/gems/Ruby-1.9.3-p194@global/bin:/home/homeuser/.rvm/rubies/Ruby-1.9.3-p194/bin:/home/homeuser/.rvm/bin:/var/lib/gems/1.8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/homeuser/.rvm/bin

デスクトップに同じセットアップがあり、同じ問題はありません。

7
Nona

/usr/bin/env RubyはRVM Rubyを指している必要があります。

しかし、設定を確認しましょう

  1. ~/.profileの内容を確認します。次の2行が含まれているはずです。

    export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
    [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"  # This loads RVM
    
  2. 次に、インストールされているRubyバージョンを確認します。

    rvm list
    

    これにより、次のような出力が表示されます。

    rvm rubies
    
    =* Ruby-1.9.3-p286 [ x86_64 ]
    
    # => - current
    # =* - current && default
    #  * - default
    

    そうでない場合は、rvm use 1.9.3 --defaultを実行してみてください

  3. スクリプトをルートとして実行しようとするときは、必ずrvmsudo ./yourscript.rbの代わりにSudo ./yourscript.rbを使用してください。これにより、正しい$PATHが設定されます

上記の3つのステップの結果を教えてください。

5
Koen.

#!/home/homeuser/.rvm/bin/Rubyの代わりに#!/usr/bin/env Rubyを追加しました。だから、これは/usr/bin/envがシステムRubyを指し、rvmルビーを指すのではないことを意味すると思います。

問題は解決しましたが、#!/usr/bin/env Rubyを使用できると便利ですが、Rubyスクリプトをデスクトップからラップトップに移動するには、#!/home/homeuser/.rvm/bin/Ruby(ユーザー名が異なるためにデスクトップ上のパスが少し異なる)を変更する必要がありません。たぶんシンボリックリンク?

4
Nona