libv8 설치 오류 : 오류 : gem 기본 확장을 빌드하지 못했습니다.


183

나는 레일 프로젝트를 만들었고

rails new test_bootstrap.

성공했습니다.

프로젝트 디렉토리로 이동하여 보석을 추가했습니다.

gem "therubyracer"
gem "less-rails" #Sprockets (what Rails 3.1 uses for its asset pipeline) supports LESS
gem "twitter-bootstrap-rails"

실행

bundle install

그 후, 나는이 오류가 있습니다.

Installing libv8 (3.16.14.3)
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

c:/RailsInstaller/Ruby1.9.3/bin/ruby.exe extconf.rb
creating Makefile
지정된 경로를 찾을  없습니다.                                                          지정된 경로를 찾을 
없습니다.                                                          지정된 경로를 찾을  없습니다.

c:/RailsInstaller/Ruby1.9.3/lib/ruby/ge
ms/1.9.1/gems/libv8-3.16.14.3/ext/libv8/builder.rb:58:in `setup_python!': libv8 requires
python 2 to be installed in order to build, but it is currently not available (RuntimeErr
or) from c:/RailsInstaller/Ruby1.9.
3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/libv8/builder.rb:42:in `block in build_lib
v8/builder.rb:42:in `block in build_libv8!'
        from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/lib
v8/builder.rb:40:in `chdir'
        from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/lib
v8/builder.rb:40:in `build_libv8!'
        from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/lib
v8/location.rb:24:in `install!'
        from extconf.rb:7:in `<main>'                                                    


Gem files will remain installed in c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/l
ibv8-3.16.14.3 for inspection.
Results logged to c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ex
t/libv8/gem_make.out
An error occurred while installing libv8 (3.16.14.3), and Bundler cannot
continue.
Make sure that `gem install libv8 -v '3.16.14.3'` succeeds before bundling.

한국인에게는 미안합니다. 선택한 경로 나 그와 비슷한 것을 찾을 수 없습니다.

이 명령을 실행하려고했습니다.

gem install libv8 -v '3.16.14.3' 

같은 오류가 발생합니다.



나는 이것을 발견했다. 파이썬을 설치하고 경로를 설정해야한다. 이제는 작동합니다. 사람들 이이 스레드로 해결되기를 바랍니다. stackoverflow.com/questions/10812696/…
Canna

선물용 말을 보지 마라 :) libv8 및 Node.js 주변 생태계에 대한 데비안의 보안 지원 부족 : "Node.js 플랫폼은 많은 양의 보안을 경험하는 libv8-3.14 위에 구축되었습니다. 문제, 그러나 현재 프로젝트 또는 보안 팀 내에 자원 봉사자가 없기 때문에 이러한 문제를 막기 위해 필요한 많은 시간을 할애하고 있습니다. "
jww

답변:


612

이거 한번 해봐:

gem install libv8 -v '3.16.14.3' -- --with-system-v8

참고 : libv8은 Rubyracer에서 사용하는 V8 엔진의 인터페이스이므로 V8이 이미 설치되어 있어도 libv8을 사용해야합니다. V8 설치를 사용하지 않고 직접 설치하려면 --with-system-v8옵션을 사용하십시오 .

자세한 내용 은 githublibv8 설명서를 참조하십시오.


6
나는 그것을 사용합니다. 정상적으로 컴파일되지만 '번들'을 실행할 때 여전히 오류가 있습니다.
Sucrenoir

10
이 부분은 효과가 있었지만 Rubyracer를 설치할 때 여전히 오류가 발생합니다. libv8을 사용하여 이전에 얻었던 것과 비슷한 오류가 발생합니다. "번들링하기 전에 그런지 확인하십시오." error
sixty4bit 3:14에

1
위의 인수로 루트로 설치 제거하고 다시 설치합니다. 작동하지 않습니다. 내 오류입니다 An error occurred while installing libv8 (3.16.14.3), and Bundler cannot continue.그리고 Bundler::GemspecError: Could not read gem at /home/gitlab/gitlab/vendor/bundle/ruby/2.1.0/cache/libv8-3.16.14.3-x86_64-linux.gem. It may be corrupted. 나는 전체 제거 캐시 폴더 및 다시 실행 bundle install --full-index --deployment --without development test postgres aws. 공장.
Nick Dong

1
완전한! gem install libv8 -v '3.16.14.3' -- --with-system-v8OS X 10.11에서 나를 위해 일했습니다.
Jagdeep Singh

시스템 v8을 찾을 수 없으므로 brew install v8도움이되었습니다. 이 답변의 지침을 따르십시오. stackoverflow.com/questions/24081473/…
redfox05

154

libv8 / therubyracer 문제를 해결하는 방법

libv8을 설치 한 후 Rubyracer 설치 오류가 발생하는 비슷한 문제가 발생했습니다. 내 해결책은 다음과 같습니다.

$ gem install libv8 -v '3.16.14.3' -- --with-system-v8
   
$ bundle install

-Rubyracer 설치 오류 참조-

$ gem uninstall libv8

$ brew install v8

$ gem install therubyracer

$ bundle install

-libv8 설치 오류 참조-

$ gem install libv8 -v '3.16.14.3' -- --with-system-v8

4
이 회신에 언급 된 단계가 가장 효과적입니다. 먼저 libv8을 gem 설치하고, Rubyracer를 설치하기 전에 시스템 전체 v8을 설치 제거해야합니다 (-with-system-v8 플래그가있는 gem 설치 libv8) :)
Parthan

1
첫 단계가 필요하다고 생각하지 않습니다. 번들 설치를 실행하기 전에 brew를 사용하여 시스템 v8을 설치하십시오. 그런 다음 therubyracer gem과 libv8 gem을 모두 수동으로 설치하십시오. 번들 설치를 실행하십시오. 그러나 아직 시도하지 않았습니다.
gitb

이것은 또한 libv8 3.16.14.11에 대한 루비 2.1.2p95와 OSX 10.10.5에 나를 위해 일한
마이클 오클리

3
'3.16.14.3'을 실행하려는 버전 번들로 변경하거나 번들 설치를 실행할 때 작동하지 않는 것을 기억하십시오
Jonathon Blok

또한 libv '3.16.14.11'에 대한 루비 1.9.3와 함께 (시에라) 10.12 근무
나그네

47

homebrew를 사용하면이 오류를 해결하는 데 도움이됩니다.

brew tap homebrew/versions
brew install v8-315

gem install libv8 -v '3.16.14.13' -- --with-system-v8
gem install therubyracer -- --with-v8-dir=/usr/local/opt/v8-315

bundle install

rubyracer Github 문제에서 확인되었습니다.


brew를 통해 이전 버전의 v8을 설치하지만 이것은 나를 위해 일했습니다.
Sanjay

1
이 오류는 루비 버전을 바꿀 때마다 나를 미치게합니다. v8 버전 옵션과 경로를 조정 해 볼 수 있다고 생각합니다.
코딩 중독

이 솔루션 만이 저에게 효과적입니다. 솔루션 덕분에
AMIC MING

@codingaddicted이 오류가 계속 발생한다고 생각하십니까? 새 프로젝트의 루비와 레일을 업데이트했으며 이전 프로젝트의 새 쉘을 열 때 항상이 오류가 발생합니다. rvm 은이 버전 문제를 처리해야하지만 이전 프로젝트의 새 쉘을 열 때마다 위의 명령을 계속 수행해야합니다.
iamse7en

@ iamse7en 내가 기억하는 한 루비의 각 버전마다 실행해야합니다. 루비를 업데이트 할 때이 오류가 발생했습니다 (그러나 지난 몇 달 동안 많은 루비를하지 않았으며 다른 버전으로 플레이하지 않았습니다).
코딩 중독

43

개별 gem을 설치하는 데 매우 괜찮은 위의 명령을 시도했지만 번 들러 사용자에게는 bundle config를 사용해야합니다.

사용하다

bundle config build.libv8 --with-system-v8 

bundle config build.therubyracer --with-system-v8

특정 gem을 설치하는 동안 사용할 매개 변수를 갖도록 번 들러를 구성하는 방법


6
어떤 이유로 든 내 번들 구성에서 올바른 빌드를 찾으려면 다음이 필요했습니다 (아래의 중독자 답변을 코딩하여 추출 설치 사용) bundle config build.therubyracer --with-v8-dir=/usr/local/opt/v8-315
iturgeon

7

나는 당신이 therubyracer창문에 보석 이 필요하다고 생각하지 않습니다 . V8 엔진을 사용하는 자바 스크립트 런타임입니다. 따라서 설치를 시도하고 libv8있습니다.

Gemfile에서 gem을 안전하게 제거 할 수 있습니다.

Rails는 어떤 런타임을 찾을 수 있는지 기쁘게 생각합니다. execjs, nodejs모든 가능한 옵션 등이 있습니다.

Microsoft는 이미 자바 스크립트 용 JScript 런타임을 Windows에 내장하고 있으며 Rails는이를 사용합니다. 자세한 내용은 이것을 참조하십시오


6

문제를 해결하는 다른 해결 방법은 Gemfile에서 문제를 분리하는 것입니다.

group :production do
 gem 'libv8', '~> 3.11.8.3'
 gem 'therubyracer', :platform => :ruby
end

그리고 번들 명령을 실행하십시오 : bundle install --without production


이것은 @Litmus의 답변과 함께 잘 작동합니다. 이것은 Windows에서 개발 설정을 중단하지 않고 구성 (보통과 관련이 있음)에서 gem을 유지할 수있는 방법을 보여주기 때문입니다.
glenatron

3

또한 사용하지 않고이 보석을 설치할 수 없었습니다.

--with-system-v8

한 번 나에게 잘 작동하는 번들 업데이트 를 시도 하십시오.


3

이것을 github 에서 찾았습니다.

위에서 언급 한 단계를 시도했다고 가정하면 brew를 통해 v8-315 및 v8을 설치하십시오.

brew unlink v8
brew link --force v8-315
gem install therubyracer -v '0.12.2' -- --with-system-v8

2

그것은 나를 위해 작동합니다. Gemfile에 넣으십시오

보석 'libv8', '~> 3.16.14.7'


이 솔루션은 저를 인도 bundle install --no-deployment하고 bundle install나를 위해 일한
SIMO

2

내 문제는 관련되지 않은 therubyracer모든 단지에서 libv8보석 및 지적 @ rishav - Bhardwaj의 같은 --with-system-v8트릭을하지 않았다, 대신 내가 간부로했다

bundle update

그때

bundle install

그리고 마지막으로

Bundle complete!

오류가 사라졌습니다!

Gem::Ext::BuildError: ERROR: Failed to build gem native extension. An error occurred while installing libv8 (3.16.14.7), and Bundler cannot continue. Make sure that `gem install libv8 -v '3.16.14.7'` succeeds before bundling.


1

내 경우에는 'mini_racer', '~> 0.2.6' Gemfile 을 요구 하여이 상황을 해결했습니다.

그런 다음 번들 설치 명령이 작동했습니다.


0

함께 시도

gem "therubyracer", "~> 0.10.2"를 Gemfile로

그리고 종속 gem libv8 (3.3.10.4)을 설치하고 빌드 gem 기본 확장 실패 문제가 해결되었습니다.


0

3.16.14.7아래 명령을 사용하여 libv8 문제가 해결되었습니다 .

gem install libv8 -v '3.16.14.7' -- --with-system-v8

그리고 bundle install성공적으로 완료되었습니다.


0

나는 이것이 libv8과 관련이 없으며, Rubyracer와 더 관련이 있다고 생각합니다.

rails 앱에서 번들 설치를 실행하는 동안 동일한 오류가 발생했습니다. 이와 비슷한 상황이 발생하면 다음과 같이 번들 외부에 gem을 설치하십시오.

gem install therubyracer

그런 다음 번들 설치를 실행하십시오. 나는 이것이 당신에게도 효과가 있기를 바랍니다.


0

또한 libv8및을 사용하는 데 문제가있었습니다 mini_racer. 문제 해결

brew install v8

bundle update libv8 mini_racer

최신 버전을 사용 mini_racer 0.2.10하고 libv8 7.3.492.27마법처럼 일했다.


0

내 로컬에서 아래 명령을 시도했지만 정상적으로 작동했습니다.

brew install v8@3.15
gem install libv8 -v 'YOUR_VERSION' -- --with-system-v8
gem install therubyracer -v 'YOUR_VERSION' -- --with-v8-dir=/usr/local/opt/v8@3.15
bundle install
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.