私は何を見逃していますか?コマンドラインから "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.
はい、参照されたリンクにアクセスしましたが、それが私にどのように適用されるかわかりません。
答え1
which rvm
という実行ファイルを探しますrvm
。実行ファイルは、実行時に単に「RVMは関数ではありません...」というメッセージを出力します。
rvm
これはシェルの関数でもエイリアスでもかまいません。これはあなたのファイル~/.bashrc
(システム全体/etc/bash.bashrc
または含まれているファイルのいずれか)で定義されています。rvm
コマンドが何であるかを確認するには、またはtype rvm
を実行しますcommand -v rvm
。
また、見ることができますwhich
aliasコマンドで使用する方法は?
答え2
rvm use
どのバージョンのRubyを使用するかを示すために、環境変数を変更して作業してください。これは関数として実行された場合にのみ実行できます。フルパスまたは未定義の機能を使用してコマンドとして実行すると、機能しません。これは、別のプロセスとして実行されると、プロセスに独自の環境コピーがあるためです。このコピーは変更されますが、プロセスが終了するとすぐに失われます。
答え3
追加しました。
#!/bin/bash --login
台本序盤はハドソンで働いていました。今、すべてがうまくいきます! :)