web-dev-qa-db-ja.com

JavaScriptランタイムが見つかりませんでした。利用可能なランタイムのリストについては、https://github.com/sstephenson/execjsを参照してください。 (ExecJS :: RuntimeUnavailable)

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:in build_extensions' ** [out :: abunchofletters.co.uk] from /usr/lib/Ruby/1.8/rubygems/installer.rb:198:ininstall '** [out :: abunchofletters.co.uk] from /home/futureproof/.gems/gems/bundler- 1.1.rc/lib/bundler/source.rb:90:in install' ** [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:in install' ** [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/ruby​​gems_integration.rb:93:in with_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:in run' ** [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:in install' ** [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:in send' ** [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:in invoke_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:in start' ** [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。イギリス
56
Rich

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にデプロイすることで、多くのトラブルを回避できます。

33
Wolfram Arnold

Ubuntuを使用している場合は、nodejsをインストールします

Sudo apt-get install nodejs
131
Jim Clouse

私は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"

できた

5
Mateu

これについてのプレゼンテーションを見ました。

私は今までルビセラを使ってきました。どうやらそれはそれほど素晴らしいものではありません。そしてそれは巨大です。

ただし、任意のjavascriptランタイムを使用できます。

推奨される他の2つは execjsnode.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の両方を並べて使用できます。

1
Michael Durrant

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がrubyracerlibv8を必要とすることを意味します。

後:

$ 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]
(...)
1
Jakub Czaplicki

Nodejsをインストールすることをお勧めします。それは私のために働いた。

端末に移動して入力するだけです:

Sudo apt-get install node.js

パスワードを入力してください...そして確認を求められたら「Y」を押します。これが役立つことを願っています!!!

Gemfileに次のgemを追加して、バンドルインストールを試してください

gem "therubyracer"、 "〜> 0.10.2"

0
rahul patil