web-dev-qa-db-ja.com

「RVMは機能ではありません」エラー

私のマシン(Mac OSX 10.6.8を実行)にRVMが正しくインストールされており、正常に動作します。奇妙なことに、それを実行するには、新しいセッションごとにsource ~/.rvm/scripts/rvmを使用する必要があります。そこから/opt/local/bin/rvmへのシンボリックリンクを作ってみましたが、実行しても何も起こりません。また、~/.rvm/bin/rvmから/opt/local/bin/rvmへのシンボリックリンクを作成してみました。ターミナルでrvmを実行すると、期待どおりにヘルプページが表示されます。しかし、rvm use some_Ruby_versionを試してみると、「RVMは機能ではないため、「rvm use ...」でルビーを選択しても機能しません。どうすれば修正できますか?

私の目標は、私がしないでくださいセッションごとにソースコマンドを入力する必要があり、何らかの理由で~/.profileが実行されないようにすることです。

29
Jwosty

何がわかりませんでした~/.profileは正しく動作します。変更する必要がありました~/.bash_profile代わりに。問題が解決しました!

7
Jwosty

シェル環境に変更を加えるため、RVMスクリプトを現在のセッションに取り込む必要があります。子プロセスからRVMスクリプトを実行することは絶対に不可能です。 RVMを外部コマンドとして実行しようとしても成功しません。

これを実際に修正するには、2つの選択肢があります。

  1. .profileが読み込まれるように、非ログインシェルではなくログインシェルを起動するようにターミナルエミュレータを構成します。
  2. 代わりに.bashrcをソースRVMに変更します。これは、非ログインシェルでも機能します。

2番目を行うには、~/.bashrcに追加するだけです。

if test -f ~/.rvm/scripts/rvm; then
    [ "$(type -t rvm)" = "function" ] || source ~/.rvm/scripts/rvm
fi
42
Daniel Pittman

Bashの代わりにzshをシェルとして使用している場合は、次のことを行う必要があります。

1。

vi ~/.zshrc 

2.マットが言ったように、追加:

if test -f ~/.rvm/scripts/rvm; then
   [ "$(type -t rvm)" = "function" ] || source ~/.rvm/scripts/rvm
fi

3. Terminallを再起動します。4.完了しました。

rvm use 1.9.3

ウィルワーク

8
Alberto Fortes

さて、Mountain Lion(10.8.3)で私に有効だったのは/ etc/profileを編集することでした

前述の行をファイルの最後に追加します。

  if test -f ~/.rvm/scripts/rvm; then
        [ "$(type -t rvm)" = "function" ] || source ~/.rvm/scripts/rvm
    fi
3
damusix

同じ問題がありました。 .profileファイルが更新されていないので、.bash_profileに追加したものと同じコマンドを追加しました。

[[-s "$ HOME/.rvm/scripts/rvm"]] &&ソース "$ HOME/.rvm/scripts/rvm"

これが正しい方法かどうかはわかりませんが、うまくいきました...

2
okcomputer

他の人が示唆するように、何も編集する必要はありません。端末の設定に移動して、「ログインシェルとしてコマンドを実行」を選択するだけです。これにより、.profileは次の端末インスタンスで実行されます。ターミナルを再度開くと、rvm use 1.9.3(またはインストールしたバージョン)を使用できるはずです。

Rvm.ioで詳細情報が見つかりました(これも回答に最適な場所です)

https://rvm.io/integration/gnome-terminal

2
DWils

いくつかの設定を行う必要があります。

端末を開いてこのコマンドを実行します。

source ~/.rvm/scripts/rvm

次にedit > Title and commandに移動し、Run command as login Shellを確認します

これで完了です。これで、毎回ソースを指定する必要がなくなりました。

1
Ramiz Raja

私を台無しにしていたのは、手動で実行できるパスを使用していたため、パスが正しいと想定していたことです。

どうやら、使用できる実行可能ファイルやスクリプトがいくつかあり、それぞれ別の場所にあります。

ミナが使うべき道はこれだと思いました:

 /usr/local/rvm/bin/rvm

実際にはそれはこれでした:

/usr/local/rvm/scripts/rvm
1
Nick Res

Rootになったときにこの問題が発生しました。上記の解決策の多くを試しました。最終的に機能したのは、rootを終了して通常のユーザーになることでした。とにかくそれが必要でした。

0
look

これらの解決策はどれも、Ubuntu 12.04 LTSにあった私の問題を取り戻すようには見えませんでした。

私がしたことは次のとおりです:

  1. rvm get stable --auto-dotfiles RVMドキュメントで概説 ここ
  2. 〜/ .bash_profileの最初の行としてsource ~/.profileを追加しました

これらの手順のすべてがRVMコマンドラインからのエラーとして文書化されたわけではありません。

RVMは機能ではないため、「rvm use ...」でルビーを選択しても機能しません。ログインシェルを許可するには、ターミナルエミュレータの設定を変更する必要があります。場合によっては、コマンドとして/bin/bash --loginを使用する必要があります。例として https://rvm.io/integration/gnome-terminal/ にアクセスしてください。

そして

  • 警告: '〜/ .profile'ファイルがあります。それをロードしたい場合は、次の行を '/home/user_name/.bash_profile'に追加してください:

    ソース〜/ .profile

0
jeffreynolte