Ruby 2.x、およびRails 4.x、OS X El Capitan(10.11.3)を使用するMacBookで、魚を使用してこのページにリストされている統合を採用したシェル: RVM-Fish Shell(Integration)
rvm version
、rvm install ...
、rvm use ...
、rvm --default ...
などのさまざまなコマンドを実行すると、次のエラーメッセージが表示されます。
/var/folders/2w/zhgybz7d25s1gdy41qdxwp48001gfh/T/rvm.fish.Pqd0CuZRJW: Shell_session_update: command not found
Googleのクイック検索では、他の開発設定の問題の多くで機能していたように、問題の特定や修正に役立つ関連結果は返されません。
rvm.fish
ディレクトリの下、および.config/fish
メイン実行可能ファイル内の$HOME/.rvm/bin/rvm
関数ファイルでクイックテキスト検索を実行しましたが、Shell_session_update
などのコマンドは表示されませんでしたそのファイルで直接呼び出されます。
なぜこれが起こっているのか、そして私がそれをどのように修正できるのか誰か知っていますか?私は自分の前にあるものを修正したいので、必要なことだけが目の前に表示されるので、このエラー/警告メッセージを削除したいと思います。 :)
追伸インストールして使用しようとしていた特定のRubyバージョン(2.0.0)は、同じ端末(iTerm(2))セッションでも適切に機能しているようです。私はそれを閉じて新しいターミナルセッションを作成しましたが、前述のさまざまなコマンドを実行するとメッセージが表示されます。
TL; DR:コマンドrvm get head
を再インストールまたは発行することにより、RVMが少なくとも1.26.11に更新され、端末ごとに1回だけ初期化されていることを確認します環境
結局、環境を整えることができました。他の人が同じ症状を持っているが別の根本的な原因を持っている場合でも、私はいくつかを助けるために私の特定の問題に関連するいくつかの情報を投稿します。
根本的な問題の一部はRVMに起因しており、RVMが私のコマンドライン環境でどのように初期化されているかでした。特にfish
シェル環境用に特別に作成されたメソッドが1つあるため、これを行う方法がいくつか見つかりました。
根本的な原因は次のいずれかであるようです:
fish
などの1つの端末環境の初期化を混合し、他の端末環境bash
で実行されている、またはその逆のステートメントが追加されました。これは、壊れたbash
PATHに:
sで区切られたパスの一部が含まれている他のスペースにも含まれている以下の詳細で確認できます。これはbash
の構文が正しくありません、ただしfish
は正しい。次に、根本的な問題の他の部分は、RVM/direnv関連のバグがトラップ機能に関して最近忍び寄ったように見えることでした。次の原因が原因である可能性のある、RVMの他の問題のあるリリースの1つがあったために、この問題におそらく再び遭遇しました。
curl -sSL https://get.rvm.io | bash
rvm get head
rvm_autoupdate_flag=2
を~/.rvmrc
に追加することによる自動更新(先ほど実行したもの)この問題は、2016年3月30日またはリリース1.26.11で修正される予定です。
GNUユーティリティを使用してファイルシステムを完全に検索し、ファイルの内容を調べた後、Atomを使用してこれをより成功させるために使用しました。 Shell_session_update
の唯一の発生は、Zanchyによって言及された/etc/bashrc_Apple_Terminal
ファイル(履歴ファイルなど)でのみ見つかったことがわかりました。また、iTerm(2 )、その場合の$TERM_PROGRAM
の値はiTerm.app
であり、Apple_Terminal
ではありません。
また、何らかの理由で、RVMのインストールを複数回管理し、インストールプロセスを実行する必要があったことも役に立ちませんでした。これにより、すでにいくつかの「ドットファイル」に構成が追加されており、手動でいくつかまたは行を追加していました。 。
それに加えて、私は.bashrc
ファイルを作成し、それをMacの.bash_profile
からリンクしました。これは、デフォルトでは存在しないためです。 Linuxシステムで以前に読んだことがありましたが、慣例により、.bash_profile
は一部のカスタマイズに適しており、.bashrc
はユーザーエイリアスや関数の定義などに適しています。そのため、.bash_profile
ファイル内、特に.profile
ファイル内をすべてユーザーディレクトリ内で見ることに慣れていませんでした。これも、同様のシステムによってコピーされます。 path_helper
がmix(!)に含まれていることも忘れないでください。ただし、問題の原因にはならなかったようです。
正しいかどうかに関係なく、環境を設定するための可能な方法は次のとおりです。
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
export PATH="$PATH:$HOME/.rvm/bin"
(制御がユーザーに渡される直前にPATH
変数を変更する最後の行として。rvm default
(また、最後のPATH
- modifying行である必要があります。From: StackOverflow-Getting "Warning!PATH is not set up適切に設定されていません"を実行すると、rvm use 2.0.0-デフォルト )より驚くべき冗長性のために、問題のデバッグ中にさまざまな環境でキャプチャしたパスの例を以下に示します。
元の(壊れた)魚PATH
/Users/username/.rvm/gems/Ruby-2.0.0-p648/bin /Users/username/.rvm/gems/Ruby-2.0.0-p648@global/bin /Users/username/.rvm/rubies/ Ruby-2.0.0-p648/bin /Users/username/.rvm/bin/usr/local/bin/usr/bin/bin/usr/sbin/sbin/usr/local/munki /Users/username/.rvm/置き場
'当然'より良い魚PATH
/ usr/local/opt/coreutils/libexec/gnubin/usr/local/opt/findutils/bin/usr/local/bin/usr/bin/bin/usr/sbin/sbin/usr/local/munki
元の(壊れた)bashパス
/libexec/gnubin:/bin:/Users/username/.rvm/gems/Ruby-2.0.0-p648/bin /Users/username/.rvm/gems/Ruby-2.0.0-p648@global/bin/Users /username/.rvm/rubies/Ruby-2.0.0-p648/bin /Users/username/.rvm/bin/usr/local/bin/usr/bin/bin/usr/sbin/sbin/usr/local/munki :/Users/username/.rvm/bin
'Manually' Fixed bash PATH
/libexec/gnubin:/bin:/Users/username/.rvm/gems/Ruby-2.0.0-p648/bin:/Users/username/.rvm/gems/Ruby-2.0.0-p648@global/bin: /Users/username/.rvm/rubies/Ruby-2.0.0-p648/bin:/Users/username/.rvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin: /sbin:/usr/local/munki:/Users/username/.rvm/bin:/Users/username/.rvm/bin
'当然'より良いbashパス
/ usr/local/opt/coreutils/libexec/gnubin:/ usr/local/opt/findutils/bin:/ usr/local/opt/coreutils/libexec/gnubin:/ usr/local/opt/findutils/bin:/ usr/local/bin:/ usr/bin:/ bin:/ usr/sbin:/ sbin:/ usr/local/munki
ノート:
.bashrc
などの端末環境構成ファイルのロードを最初にスキップして、問題が解決した後、最終的にそれらを実行させたときのものです。私も同じ問題を抱えていました。後で、これについてのrvm repoにすでに問題があることがわかりました。そして、プルリクエストの1つでそれを修正しました。
これを修正するには、rvmを最新バージョンにアップグレードするか、現在の開発リビジョンを指すようにします。
rvm get head
詳細は この投稿 を参照してください。