Dreamhostが数週間前にサーバーをアップグレードして以来、私のウェブサイトは壊れています。私はそれを直そうとして髪を引き裂き、いくつかの進歩を遂げましたが、うまくいけば最終的な問題に固執しています。
Rails 3.1.1 on Ruby 1.8.7を使用し、PhusionPassengerから「Ruby(Rack)アプリケーションを開始できませんでした」というエラーが表示されます。「JavaScriptランタイムが見つかりませんでした。利用可能なランタイムのリストについては https://github.com/sstephenson/execjs を参照してください。(ExecJS :: RuntimeUnavailable)」。 Dreamhostのwikiで、「therubyracer」gemをインストールするソリューションが提案されています。
だから私はgemfileを次のように提案されたgemで更新しました:
gem 'therubyracer'、 '〜> 0.9.9'
編集:私はまた、ファイルに追加しようとしました:
gem 'therubyracer'、:platforms =>:Ruby
しかし、違いはありません。
次に、Macbook(OS X 10.5.8を実行中)に問題なくインストールされたバンドル。ただし、「cap deploy」を実行してDreamhostに配置すると、これは失敗します。 therubyracerが依存するlibv8をインストールしようとするとエラーが表示されます。
これを正しくインストールする方法や他の実用的なソリューションを知っている人はいますか?
その他の情報はリクエストに応じて提供できます。
ターミナルからの完全なエラーフィードバック:
- 実行 "cd /home/futureproof/abunchofletters.co.uk/releases/20111118003703 && bundle install --gemfile /home/futureproof/abunchofletters.co.uk/releases/20111118003703/Gemfile --path /home/futureproof/.gems/ bundle --deployment --quiet --without development test "サーバー:[" abunchofletters.co.uk "] [abunchofletters.co.uk]コマンドの実行** [out :: abunchofletters.co.uk]残念ながら致命的なエラー発生しました。このエラーを https://github.com/carlhuda/bundler/issues のBundler課題トラッカーに報告してください。修正できるようになります。ありがとう! ** [out :: abunchofletters.co.uk] /usr/lib/Ruby/1.8/rubygems/installer.rb:483:in
build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError) ** [out :: abunchofletters.co.uk] ** [out :: abunchofletters.co.uk] /usr/bin/Ruby1.8 extconf.rb ** [out :: abunchofletters.co.uk] *** extconf.rb failed *** ** [out :: abunchofletters.co.uk] Could not create Makefile due to some reason, probably lack of ** [out :: abunchofletters.co.uk] necessary libraries and/or headers. Check the mkmf.log file for more ** [out :: abunchofletters.co.uk] details. You may need configuration options. ** [out :: abunchofletters.co.uk] ** [out :: abunchofletters.co.uk] Provided configuration options: ** [out :: abunchofletters.co.uk] --with-opt-dir ** [out :: abunchofletters.co.uk] --without-opt-dir ** [out :: abunchofletters.co.uk] --with-opt-include ** [out :: abunchofletters.co.uk] --without-opt-include=${opt-dir}/include ** [out :: abunchofletters.co.uk] --with-opt-lib ** [out :: abunchofletters.co.uk] --without-opt-lib=${opt-dir}/lib ** [out :: abunchofletters.co.uk] --with-make-prog ** [out :: abunchofletters.co.uk] --without-make-prog ** [out :: abunchofletters.co.uk] --srcdir=. ** [out :: abunchofletters.co.uk] --curdir ** [out :: abunchofletters.co.uk] --Ruby=/usr/bin/Ruby1.8 ** [out :: abunchofletters.co.uk] extconf.rb:13: uninitialized constant Gem (NameError) ** [out :: abunchofletters.co.uk] Checking for Python... ** [out :: abunchofletters.co.uk] ** [out :: abunchofletters.co.uk] Gem files will remain installed in /home/futureproof/.gems/bundle/Ruby/1.8/gems/libv8-3.3.10.4 for inspection. ** [out :: abunchofletters.co.uk] Results logged to /home/futureproof/.gems/bundle/Ruby/1.8/gems/libv8-3.3.10.4/ext/libv8/gem_make.out ** [out :: abunchofletters.co.uk] from /usr/lib/Ruby/1.8/rubygems/installer.rb:446:in
each '** [out :: abunchofletters.co.uk] /usr/lib/Ruby/1.8/rubygems/installer.rb:446:inbuild_extensions' ** [out :: abunchofletters.co.uk] from /usr/lib/Ruby/1.8/rubygems/installer.rb:198:in
install '** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/bundler- 1.1.rc/lib/bundler/source.rb:90:ininstall' ** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/rubygems_integration.rb:78:in
preserve_paths '** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/bundler-1.1.rc /lib/bundler/source.rb:89:ininstall' ** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/installer.rb:73:in
install_gem_from_spec '** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/bundler-1.1.rc/lib/ bundler/rubygems_integration.rb:93:inwith_build_args' ** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/installer.rb:72:in
install_gem_from_spec '** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/installer .rb:56:inrun' ** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/installer.rb:55:in
run '** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/installer.rb: 12:ininstall' ** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/cli.rb:219:in
install '** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/bundler- 1.1.rc/lib/bundler/vendor/thor/task.rb:22:insend' ** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/vendor/thor/task.rb:22:in
run '** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/bundler -1.1.rc/lib/bundler/vendor/thor/invocation.rb:118:ininvoke_task' ** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/bundler-1.1.rc/lib/bundler/vendor/thor.rb:263:in
dispatch '** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/ bundler-1.1.rc/lib/bundler/vendor/thor/base.rb:386:instart' ** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/bundler-1.1.rc/bin/bundle:13 ** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/bin/bundle:19:in
load '** [out :: abunchofletters.co.uk] /home/futureproof/.gems/binから/ bundle:19コマンドは13170msで終了しました*** [deploy:update_code]ロールバック*「rm -rf /home/futureproof/abunchofletters.co.uk/releases/20111118003703;」の実行true "サーバー:[" abunchofletters.co.uk "] [abunchofletters.co.uk] 563msでコマンドコマンドの実行が失敗しました:" sh -c 'cd /home/futureproof/abunchofletters.co.uk/releases/20111118003703 && bundle install --gemfile /home/futureproof/abunchofletters.co.uk/releases/20111118003703/Gemfile --path /home/futureproof/.gems/bundle --deployment --quiet --without development test '"on abunchofletters.co。イギリス
libv8
はOSライブラリです。正しいLinuxシステムライブラリをインストールする必要があります。 Ubuntuを実行している場合は、
Sudo apt-get install libv8-dev
または、node.js
これは、さまざまなディストリビューション用のDebian/Ubuntuパッケージとして利用可能です。 http://ppa.launchpad.net/chris-lea/node.js/ubunt
OSやgemのコンポーネントを管理する必要がない代わりにHerokuにデプロイすることで、多くのトラブルを回避できます。
Ubuntuを使用している場合は、nodejsをインストールします
Sudo apt-get install nodejs
私はDreamhostでこのgemをRails 3.1で使用します
group :assets do
gem 'execjs'
gem 'therubyracer', :platforms => :Ruby
gem 'johnson'
gem 'sass-Rails', " ~> 3.1.0"
gem 'coffee-Rails', "~> 3.1.0"
gem 'uglifier'
end
プリコンパイラとしてtherubyracer、ランタイムとしてjohnson。
これは、2 Rails 3.1 Dreamhostがホストするアプリで動作します。
私はdreamhost共有サーバーにいます。
Root/Sudoを使用せずにnodejsをインストールしました。サーバー上:
#download node js (check last version from web)
$ wget http://nodejs.org/dist/v0.8.16/node-v0.8.16-linux-x86.tar.gz
#untar
$ tar xzf node-v0.8.16-linux-x86.tar.gz
パスをdeploy.rbに追加し、次の行を追加します(この場合、さらにパスが追加されます)。
default_environment["PATH"] = ":/home/myUser/soft/node-v0.8.16-linux-x86/bin:/home/myUser/.gems/bin:/usr/lib/Ruby/gems/1.8/bin/:$PATH"
できた
これについてのプレゼンテーションを見ました。
私は今までルビセラを使ってきました。どうやらそれはそれほど素晴らしいものではありません。そしてそれは巨大です。
ただし、任意のjavascriptランタイムを使用できます。
推奨される他の2つは execjs と node.js (現在非常に暑い)です。
gem install
選択した宝石、そしてbundle install
または bundle update
アプリ用。
もう1つの注意点は、1.9.2に切り替える必要があることです。
インストール [〜#〜] rvm [〜#〜] (bash <<(curl -s https://raw.github.com/wayneeseguin/rvm/ master/binscripts/rvm-installer ))そして、1.8.7と1.9.2の両方を並べて使用できます。
Win7開発マシンで同じ問題が発生しました。 https://github.com/hiranpeiris/therubyracer_for_windows をインストールし、gem 'therubyracer'
をGemfile
に追加することで整理されているように見えます。
前:
$ Rails generate
c:/Ruby193/lib/Ruby/gems/1.9.1/gems/execjs-1.4.0/lib/execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
from c:/Ruby193/lib/Ruby/gems/1.9.1/gems/execjs-1.4.0/lib/execjs.rb:5:in `<module:ExecJS>'
(...)
これは基本的にRailsがrubyracer
とlibv8
を必要とすることを意味します。
後:
$ Rails generate
SECURITY WARNING: No secret option provided to Rack::Session::Cookie.
This poses a security threat. It is strongly recommended that you
provide a secret to prevent exploits that may be possible from crafted
cookies. This will not be supported in future versions of Rack, and
future versions will even invalidate your existing user cookies.
Called from: c:/Ruby193/lib/Ruby/gems/1.9.1/gems/actionpack-3.2.8/lib/action_dispatch/middleware/session/abstract_store.rb:28:in `initialize'.
Usage: Rails generate GENERATOR [args] [options]
(...)
Nodejsをインストールすることをお勧めします。それは私のために働いた。
端末に移動して入力するだけです:
Sudo apt-get install node.js
パスワードを入力してください...そして確認を求められたら「Y」を押します。これが役立つことを願っています!!!
Gemfileに次のgemを追加して、バンドルインストールを試してください
gem "therubyracer"、 "〜> 0.10.2"