rvmのインストールが機能しない:「RVMは機能ではありません」


234

RVMをインストールしたのですが、動作しません。私の.profileファイルの最後にそのような行があります:

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

source .profile端末を実行して再起動しようとしましたが、それでも実行するrvm use 1.9.2と次のようになります。

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

私のシステムはUbuntu 11.10です。


2
RVMの代替としてrbenvをお勧めします 。シェルにロードする必要はありません。
ドリナー2015

10
特定のテクノロジーに問題がある場合は常に、アーマーを輝かせるヒーローが常にいます。そのテクノロジーを捨てて完全に代替品をインストールするという貴重なアドバイスがあります。それはまるでルビーの質問をしたかのようで、主人公はすぐに「ジャストインストールjava」を思いついた=)
Clergyman

回答:


236

ログインシェルを使用していません。

ここでは、ログインフラグを有効にするプロセスについて説明します。ログインシェルの詳細については、こちらをご覧ください

したがって、Gnomeターミナルの設定で「ログインシェルとして実行」オプションをチェックする必要があります。このフラグを設定した後、新しいターミナルを開く必要があります。

コマンドをに設定する必要がある場合があり/bin/bash --loginます。


以下のためにリモート接続には、インタラクティブ実行している間Differeneの理解することが重要であるsshセッションを単一のコマンドを実行します。

ssh serverサーバーをインタラクティブに実行してから作業しているときは、デフォルトでログインシェルを使用していますが、問題ssh server "command"はありませんが、ログインシェルを使用していないため、で実行する必要がありますssh server 'bash -lc "command"'

リモート呼び出しでは、で単一のコマンドを実行する場合と同じ問題が発生する可能性がありsshます。


4
Macで同等のソリューションは何でしょうか?
アダムグラント

8
してみてくださいrvm get stable --auto、あなたの端末の設定を確認
mpapis

10
fyi:これを設定した後、新しい端末を起動する必要がありました。
oma

2
@mpapis Xサーバーを自分のマシンに転送できないリモートサーバーで「ログインシェルとしてコマンドを実行」するようにgnome-terminalを設定するにはどうすればよいですか?
Waseem 2013年

12
@mpapisの提案に従うために、--auto非難された--auto-dotfilesため、現在のコマンドは rvm get stable --auto-dotfiles
Mart Van de Ven

432

次を実行する必要があります

$ source ~/.rvm/scripts/rvm

次にこれを実行します

$ type rvm | head -n 1

そしてあなたが得るなら

rvm is a function

問題は解決しました。

user$ rvm requirementsオペレーティングシステムの依存関係の要件を確認するには、実行する必要もあります

ソース:https : //rvm.io/rvm/install/

このコードを〜/ .bashrcファイルまたは〜/ .zshrcファイルに挿入する必要があり、このコードを再度記述する必要がないことを忘れてしまいました。乾杯!


2
ありがとう。ubuntu 10.04で私のために働いた。
vekozlov、2012

19
このソリューションは、現在のシェルセッションでのみ機能します。このソリューションに従う場合は、コンソールに再度ログオンするたびにこれらの手順を繰り返す必要があります。より永続的な解決策は、以下を〜/ .bashrcファイルに追加することです:if test -f〜/ .rvm / scripts / rvm; 次に["$(type -t rvm)" = "function"] || ソース〜/ .rvm / scripts / rvm fi
Stanley

これは本当にRVMのgnome統合ページにあるはずです。もっと簡潔で、KDEと
Cinammonを

1
そして、これをすべて実行しても、それが機能しない場合はどうなりますか?
Br.Bill 2013

@Stanleyのソリューションが機能しない場合は、これも実行してください:stackoverflow.com/questions/820517/bashrc-at-ssh-login
Adam Grant

105

これを恒久的に解決するには、次の行をカット/ペーストします。

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

From:~/.bash_profileファイル

宛先: ~/.bashrcファイル

これが機能する理由は、.bashrcターミナルに入る.bash_profileたび、およびログインするたびに実行されるためです。これが解決策が/bin/bash --login機能する理由ですが、ターミナルに入るたびにそれを行わなければなりません。このようにして、あなたは次のフォーマットまで設定され、それまでにすべてを忘れてしまいます:)


画面ユーザーとして、私は常にこの行をの~/.bashrc代わりに配置する必要があり ~/.bash_profileます。
ryenus

2
ありがとう!gnomeがログインするのに必要な2秒の遅延に非常に悩まされました。これはその遅延を防ぎます。
justinpage 2014年

6
rvmのインストールでこれが自動的に行われないのはなぜですか?
balki 2015年

@mpapisはrvmのリリースマネージャであり、「Xセッションが失敗する可能性があります(正しくリコールすればFedora 17)、rsyncセッションが失敗します...そして、今すぐリコールできないその他の理由」。私はただ `/ bin / bash --loginを使い続けるつもりだと思います。
kimbaudi

29

私もこの問題に直面しました。最後に、ターミナルでこの行を実行しました。

source ~/.rvm/scripts/rvm

問題が修正されました。この行は、RVMインスタンスを特定の時間の関数にするためです。


2
すべての最も簡単な答え。その行を〜/ .bashrcに挿入するだけで、任意のターミナルエミュレータを使用できます。
Nikkolasg 2015

1
こんにちは-このコマンドは、私が使用していた用語セッションの問題を「修正」しましたが、結果は粘着性がなく、新しい(または他の)用語セッションを助けませんでした。そして、デスクトップも変更を知らないようです。それはセッション/ログインごとに基づいているため、私もログインのことを「反」しています。個人的には、同じプログラムを異なるRubyやバージョンと比較する機能が必要です。
意志

1
あなたは本当のMVPです。私がこれを試すまで、他には何もうまくいきませんでした。一時的なものかどうかは気にしませんが、修正が必要です。
ian-campbell

rvmのインストールファイルはどこにあるので、インストールすると、この問題やその他の問題が処理されますか?私は彼らのホームページに記載されているプロセスを使用し、それを「ただ機能させる」ために何時間も費やしてきました。「yum install rvm」のようなもので、すべてが完了し、準備が整っています。
JosephK 2017

21

最新のRVM(rvm 1.11.6(stable))はUbuntu(10.10-64ビット-オタクgnatまたは何でも)で動作しなくなりました-取得し続けました

「RVMは機能ではないため、「rvm use ...」でルビーを選択しても機能しません。」

以前、私はメッセージを受け取りましたが、「rvm 1.9.3-p0@rails321」は機能します。今、それはうまくいきません-あなたは宝石セットをまったく変えることができませんでした。

これが見つかるまで何も機能しませんでした-これを最後の行にしてください /home/your-name/.bashrc

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


2
"rvm get stable --auto"が.bash_login [[-s "$ HOME / .rvm / scripts / rvm"]] && source "$ HOME / .rvm / scripts / rvm"に追加され、.bashrcから削除されました-Iソース〜/ .bash_loginを.bashrcの最後と、ストリームのジェムセットを変更するスクリプトの始まりに追加
Rod McLaughlin

9

あなたが言ったように、表示されたエラーは次のエラーである可能性があります。

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.

上記のように、単に ' / bin / bash --login(端末を再起動した後)端末に」と入力し、「rvm use 1.9.3」などのコマンドを入力すると、同じバージョンが使用されます。

コマンド 'ruby -v'を実行して、RVMが更新されたバージョンのRubyを使用していることを確認します。


8

私は新しいrvmインストールでもこの​​問題を抱えていましたが、ここでの答えのどれもそれを修正しませんでした。公式のrvmサイトの基本セクションにアクセスすると、次のコマンドがあります。

#http://rvm.io/rvm/basicsから

ソース$(rvm 1.9.3 do rvm env --path)

1.9.3を実際に必要なRubyバージョンに変更する必要があります。これにより、シェルタイプに関係なく、rvmが関数になります。


7

あなたが答えを受け入れたとしても、私は別の方法を提案したいと思います..〜/ .bashrcは、シェルが開かれる前にロードされます。その行の最後にその行を追加すると、ログインシェルのことは何も必要ありません。


「ログインシェルのこと」には理由があります。RVMソーシングを使用して多くのテストを行いましたが、これは、検出不能でエラーを解決するのが難しい作業を保証する唯一の方法です
mpapis

@mpapisその理由を説明できますか?他の回答から、行をrcファイルに移動することでほとんど問題ないように見えます
balki

たとえば、Xセッションが失敗する可能性があります(正しくリコールした場合はFedora 17)、rsyncセッションが失敗します...その他の理由で今リコールできない
mpapis

7

多分あなたは下を試すことができます:

  • あなたのターミナル->
  • 編集->
  • プロファイル設定->
  • タイトルとコマンド->
  • 「ログインシェルとしてコマンドを実行する」を確認してください
  • できた

通常のシェルは.profileをスキップするため、これが最も簡単な解決策であり、正しい解決策です。このオプションを使用すると、それがロードされ、.bashrcを編集する必要がまったくなくなります。
DWils 2014


4

ターミナルを開き、[編集]> [プロファイル設定]に移動して、[ タイトルとコマンド]タブに移動し、[ ログインシェルとしてコマンドを実行]をオンにします

Bashを起動すると、sudoを使用せずにターミナルから直接Gemsをインストールできるようになり、「RVMは機能ではないため、「rvm use ...」でルビーを選択しても機能しません。がなくなります。

乾杯。


4

上記の答えはすべて有効です。しかし、同じ問題に直面したときの解決策は次のとおりです。

  • ZSHを更新します。(なんらかの理由で直接更新しようとしても機能しません。そのため、ここから更新バージョンをアンインストールして再インストールしまし
  • デフォルトのシェルをzshとして設定します(つまり、zshを使用する場合)。sudo chsh -s $(which zsh) $USER
  • .zshrcおそらく公式のRVMサイトからCURLを使用して最新のRVMをインストールした後、次のコードが一番下にあることを確認してください

    [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
    source ~/.profile
  • 最も重要なポイント:.zshrcファイル内のすべてのエクスポート先にPATHが追加されて:$PATHいることを確認してください。上記の手順を実行した後でも、これが私の問題の根源だったと思います。

  • これを投稿してくださいRVMの機能でないという私の問題はすべてなくなりました。それでも機能しない場合は、ここでエラーのトレースを行ってください。この問題を解決するための数時間の苦労の後、私は関連するすべてのエラーを見たことがあるに違いない。

それが役に立てば幸い。乾杯!


かしこまりました。それでうまくいきました。MOST IMPORTANT POINTの部分は理解できませんでしたが、うまくいきました。
リベルモ2014年

RVMをインストールしようとすると、がある場合は警告が表示されますexport PATH="/usr/bin:"。追加$PATHするように求められます。これが私の問題の原因の1つでした。したがって、エクスポート前に、変数が追加されていたものはすべて追加されるexport PATHはずです。とにかく、これが役に立ったのは良いことです。$PATHPATH
Vishnu Narang 2014年

3

Mac OSX 10.8 Mountain LionにRuby 1.9.3-p125をインストールする手順

  1. 最新のXCode(> = 4.3)とコマンドラインObjective-Cコンパイラ「clang」がすでにインストールされています。
  2. この手順を実行するには、「bash」シェルを実行する必要があります。
  3. システム環境設定に移動します
  4. 「ユーザーとグループ」をクリックします
  5. パネルの左下にあるロックをクリックし、パスワードを入力してロックを解除します。
  6. パネルの左ペインのユーザーアイコンを「Ctrlキーを押しながらクリック」し、「詳細オプション...」を選択します。
  7. ログインシェルを「/ bin / bash」に変更します
  8. 設定を閉じます
  9. ターミナルウィンドウを開きます(コマンド+スペースバーを押し、「ターミナル」と入力します)。
  10. 次の指示に従ってください。

http://www.frederico-araujo.com/2011/07/30/installing-rails-on-os-x-lion-with-homebrew-rvm-and-mysql/

ノート:

  • rubyをインストールするには、clangコンパイラを指定する必要があるかもしれません:

    $ rvm install 1.9.3p125 --with-gcc = clang

  • RVMが/ usr / local / rvmが見つからないことについて問題がある場合は、リンクを作成する必要があります。

    $ ln -s / Users / [ユーザー名] /。rvm / usr / local / rvm


今はP194までだと思います。rvm install 1.9.3 --with-gcc = clangを実行すると、自動的に1.9.3の最新バージョンが取得されます。
ジョージキャンベル


1

apt-getコマンドで古いrvmバージョンruby-rvmをインストールしたことがあるので、同じエラーが発生しました。

.bashrcファイル内の古いrvmを構成するスクリプト行を削除して、問題を解決しました。

古いrvm構成スクリプトを確認してから、source .profileを実行します




0

同じエラーが発生しましたが、このページの解決策はどれも機能していないようです。私にとっては、rvm実行可能ファイルをパスに追加するだけで十分でした。

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

出来上がり!


0

私は同じ問題を抱えていましたが、これを.bash_profileで行いましたが、うまくいきました。 source "$HOME/.rvm/scripts/rvm"


0

同じ問題が発生し、私のようなlubuntuを使用している人のために、私はこのリンクをたどりました:

ターミナルは

lxterminal -e "bash -il"

私を正しい方向に向けてくれた@mpapsisに感謝


リンクは一時的な場合があるため、後世のために、回答に小さな概要を貼り付けることをお勧めします。
Marcel Wilson

0

Rubyバージョンを変更する私の不潔な方法は

rvm alias create default ruby-2.2.3 && source ~/.bashrc && rvm list

〜/ .bashrcに次の行があるので機能しますが、奇妙なことに、自動的にジョブが実行されません。

[[ -s "/usr/local/rvm/bin/rvm" ]] && source "/usr/local/rvm/bin/rvm"

--loginを使用してdockerコンテナーに接続しようとしました

docker run -it imagename `/bin/bash --login`

しかし、この場合、コンテナはバックグラウンドで開いたままになり、コマンドを入力できません。

私はzhcとターミナルの両方を「開く/bin/bash --login」オプションで試しました

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.