0

インターネット接続が中断されたとき、コンソールで「rails server」を実行していました。

Rails を実行しようとすると、セグメンテーション違反が発生しました。

私が実行したとき

レールサーバー

また

レールdbconsole

/usr/local/rvm/gems/ruby-2.0.0-p247/gems/sqlite3-1.3.3/lib/sqlite3/sqlite3_native.so: [バグ] セグメンテーション違反を取得しました

Gemfile から sqlite をコメントアウトし、Rails サーバーを正常に起動してから停止しました。次に、sqlite のコメントを外して、Rails サーバーを起動しました。今はすべて問題ないようです。

誰が何が起こったのか説明できますか? 私はこれについて心配する必要があります。これが再び発生した場合、どうすればよいですか?

Ruby 1.8.7とRails 3.0.5を実行しています

4

2 に答える 2

3

この問題は、環境が適切に構成されていないために発生しているようです。使用していると書いていますが、RVM がロードされた後にシェル初期化ファイルがリセット/再構成されたときruby 1.8.7にエラーが発生します。一度実行して修正するには:ruby-2.0.0-p247PATH

rvm use 1.8.7 --install

それを長期的に修正するには:

rvm get stable --auto-dotfiles

すべての出力を必ず読んでください。問題が自動的に修正される場合、RVM は警告を表示します。

問題が修正されたら、アプリケーションの gem をインストールします。

bundle install

アプリケーションを再度実行してみてください:

rails s

構成ミスに加えて、Ruby を更新することをお勧めします。これは非常に古い Ruby であり、もはやサポートされておらず、セキュリティ アップデートも取得されないため、最初のコマンドの代わりに次のコマンドを使用します。

rvm get stable
rvm use ruby --install --default --ruby-version

RVM は名前rubyを最新の既知のバージョンの ruby​​ に解決し、--install見つからない場合は ruby​​ をインストールするように指示し、--defaultこの ruby​​ をデフォルトとして設定し、ディレクトリをアプリケーション フォルダーに変更するときに選択した ruby​​ をロードするファイルを--ruby-version生成します ( を使用)。.ruby-versioncd

于 2013-07-24T20:00:59.213 に答える
-3

Ruby 1.8.7 はサポートされなくなり、セキュリティ更新プログラムも提供されなくなります。できるだけ早く更新する必要があります。

rvm use --install 2.0.0

アプリケーション gem をインストールします。

bundle install

Rails を再起動します。

rails s
于 2013-07-24T15:37:13.080 に答える