1

私はBluehostに取り組んでいます。Rails の 3.2.8 gem をインストールしたところ、次のようになりました。

> gem list --local | grep rails
rails (3.2.8)

しかし:

rails --version
Rails 2.3.11

「rails」コマンドで最新のgemを使用するにはどうすればよいですか? $PATH 変数と関係があると思いますが、それについてはほとんどわかりません。

また、gem コマンドと rails コマンドを実行すると、次のようなエラーが発生します。

Invalid gemspec in [XXX]: invalid date format in specification: "YYY"

それが接続されているかどうかはわかりません(とにかく、そのようなエラーの原因は何なのか疑問に思っています)。

4

1 に答える 1

1

次のコマンドを実行してみてください。

curl -L https://get.rvm.io | bash -s stable --ruby --rails

これは、インストールされている Ruby のバージョンごとに個別の gem を維持する RVM をインストールします。--rubyand引数は--rails、RVM のインストール中に ruby​​ と rails をインストールするように指示します。RVM のインストールにより、$PATH およびその他の必要な環境変数が自動的に更新されます。

インストールの最後に、次を実行するように求められます。

source ~/.rvm/scripts/rvm

これにより、これらの環境変数の変更がすぐに有効になります。または、ログアウトしてから再度ログインすることもできます。

その時点で と を実行するrails -vruby -v、それらが新しいバージョンを指しているのがわかるはずです。RoR アプリのディレクトリから実行bundle installすると、必要なすべての gem が ~/.rvm/gems/ruby-/gems にインストールされます。

その時点で、RVM をインストールする前に、gems/rails/ruby を削除/アンインストールできます。

2012 年 10 月 17 日の編集: 私の答えを気にしないでください。現在インストールされている Ruby 1.8 で Rails 3.x を実行することは可能かもしれませんが (この Stackoverflow の質問を参照)、Bluehost 共有ホスティングを使用して Ruby 1.9.x を実行することはできません。(今のところ) 唯一の選択肢は VPS ホスティングです。

その理由は、Passenger Phusion が /usr/lib にインストールされている Ruby のバージョンに関連付けられているためです。このバージョンは root アクセスなしでは変更できません。RVM を使用して任意のバージョンの Ruby をインストールできますが、Passenger と通信することはできないため、Rails プロジェクトはその gem を使用しません。

于 2012-10-16T05:01:26.420 に答える