何が足りないのですか?コマンドラインから「rvm」を呼び出すことはできますが、which rvm
が使用していると言っているパス全体を参照することはできません。
それは重要ではありませんが、私は常に「jenkins」としてログインしたままであり、これらのコマンドは連続して実行されます。
$ whoami
jenkins
RVMはここにあります
$ which rvm
/home/jenkins/.rvm/bin/rvm
これは動作します
$ rvm use 1.8.7
Using /home/jenkins/.rvm/gems/Ruby-1.8.7-p370
Running /home/jenkins/.rvm/hooks/after_use
しかし、これは機能しません
$ /home/jenkins/.rvm/bin/rvm use 1.8.7
RVM is not a function, selecting rubies with 'rvm use ...' will not work.
You need to change your terminal settings to allow Shell login.
Please visit https://rvm.io/workflow/screen/ for example.
はい、参照されているリンクにアクセスしましたが、どのように適用されるのかわかりません。
which rvm
は、rvm
という実行可能ファイルを探します。その実行可能ファイルは、実行時に「RVMは機能ではありません…」というメッセージのみを出力します。
rvm
は、おそらくシェル内の関数またはエイリアスです。 ~/.bashrc
(またはシステム全体の/etc/bash.bashrc
、またはこれらのいずれかから含まれるファイル)で定義されています。 rvm
コマンドが何であるかを確認するには、type rvm
またはcommand -v rvm
を実行します。
追加しました
#!/bin/bash --login
私のハドソンの仕事のスクリプトの冒頭で。すべてが機能するようになりました。 :)
rvm use
は、環境変数を変更して、使用するRubyのバージョンを示すことで機能します。これは、関数として実行する場合にのみ実行できます。コマンドとして実行する場合は、フルパスまたは関数が定義されていないため、機能しません。これは、プロセスが環境の独自のコピーを取得する別のプロセスとして実行された場合、そのコピーは変更されますが、プロセスが終了するとすぐに失われるためです。