web-dev-qa-db-ja.com

RVM + Zsh「RVMは機能ではありません。「rvmuse ...」でルビーを選択しても機能しません」

私はコマンドラインの専門家ではないので、自分が何をしているのかほとんどわからないということから始めます。

RVMとoh-my-zshでNiceを一緒にプレイすることはできません。私はいくつかの異なる解決策を試しましたが、いくつかはSOに投稿されましたが、問題を解決するものは何も見つかりませんでした。

最初に、他の誰かが私のマシンにRVMをセットアップしました。私は後でoh-my-zshを自分でセットアップしましたが、そうするのに多くの問題があったことを覚えています。

私の.zhsrcファイルは、これらの2行を除いて完全にデフォルトです

export PATH=$HOME/bin:/usr/local/bin:/usr/local/rvm/bin:$PATH

#pretty sure this line does nothing, although I've seen this fix around
# several places. I noticed that I don't seem to have an .rvm file in my 
# home directory which would be an issue, but I have no idea how to 
# go about correcting this.
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 

Zshが/usr/local/rvmを返さないため、Pathディレクティブにzsh: rvm command not foundを追加しました。それ以外の場合、次のエラーをスローするrvm useを除いて、ほとんどのrvmコマンドが機能します。

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

You need to change your terminal emulator preferences to allow login Shell.
Sometimes it is required to use `/bin/bash --login` as the command.
Please visit https://rvm.io/integration/gnome-terminal/ for a example.

RVMの推奨に従って、iTerm2のプロファイルのプロファイル設定が「ログインシェル」に設定されていることを確認しました

iTerm2 Preferences - Login Shell

これらの設定を「コマンド」オプションに変更し、推奨される/bin/bash/ --loginをコマンドとして使用しようとしましたが、これが発生するとzshが機能しなくなったようです。コマンドを/bin/zsh/ --loginに変更すると、zshは再び機能しますが、rvm useを実行しようとすると、「RVMは機能ではありません」というエラーが発生するため、問題は解決しません。

RVMのデフォルトのRubyは2.0.0に設定されています。ホームフォルダでRuby -vを実行すると、Rubyバージョンの出力が表示されます。デフォルトバージョン。

Railsプロジェクトで作業している場合、GemfileがデフォルトのRails 2.0.0)を指定していれば、すべてのRubyコマンドを実行できます。ただし、異なるバージョンを使用するプロジェクトでは、次のエラーが発生します。

Your Ruby version is 2.0.0, but your Gemfile specified 1.9.3

次に、上記のエラーが返されるため、rvm use 1.9.3を実行できません。

どうすればzshをRVMでうまくプレイさせることができますか?

私のセットアップに関するいくつかの情報:

  • Mac OSX 10.9.1(マーベリックス)
  • iTerm2
  • Zsh5.0.2とoh-my-zsh
  • RVM 1.5.1
14
biggles

RVMが間違った場所にインストールされていることが判明しました。最初にRVMをインストールしたときは、Sudoコマンドを使用してインストールしたと思います。このコマンドは、シングルユーザー(/usr/local/rvmにある必要があります)ではなく、マルチユーザーインストール(~/.rvm/scrips/rvmにインストール)を実行しました。投稿されたソリューションは私にとってはうまくいきませんでした。

rvm implodeを使用してRVMをアンインストールする必要がありました。いくつかの権限の問題があったので、手動でアクセスして、削除できなかったファイルを削除する必要がありました。 curlコマンドを実行してRVMを再インストールすると、正しい場所にインストールされます。

.zshrc[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"を使用してRVMを調達することが正しく機能するようになり、ルビーを切り替えることができます。

20
biggles

私にとっては、追加する必要がありました

source $HOME/.rvm/scripts/rvm

私の〜/ .zshrcに、このSOの質問と同じエラーメッセージが表示された後、動作を開始しました。

52
trusktr

@trustkrの答えは私のために働いたが、追加したい...

Rvmのインストール直後にこの問題が発生しました。のために

source

〜/ .zshrcファイルで作業するには、新しいターミナルセッションを開始し、そこで作業する必要がありますOR実行できます

source ~/.rvm/scripts/rvm

インストールしたのと同じターミナルセッションで。

[Mac OS 10.10.5-iTerm-zsh]

4
dandam

同じ問題が.zshrcファイルの最後にこの1行追加されました

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

そして今、すべてが私のubuntu16.04オペレーティングシステムで正常に動作します:)

4
an0nh4x0r

以下を実行する必要があります。

$ソース〜/ .rvm/scripts/rvm

次にこれを実行します

$タイプrvm |頭-n1

結果は次のようになります

rvmは、/ home/Sun/.rvm/scripts/cliのシェル関数です。

お役に立てば幸いです。

2
Mariana Lungu

別の解決策:

1)ターミナルで実行:

which rvm

私の場合の出力は---> / usr/share/rvm

2).zshrcファイルを開きます

nano ~/.zshrc

add "source +the_path_to_your_rvm+ / scripts/rvm"、私の場合は:

source /usr/share/rvm/scripts/rvm

3)ファイル(.zshrc)を保存します

4)ターミナルを閉じて、もう一度開きます

0
medBouzid