Saya mencoba untuk menginstal libv8 3.16.14.3 tetapi mendapatkan kesalahan pada OSX Mavericks menggunakan rvm stabil terbaru dan ruby-1.9.3-p125.
Ini adalah output dari menjalankan perintah 'gem install libv8':
~/src(branch:master) » gem install libv8
Fetching: libv8-3.16.14.3.gem (100%)
Building native extensions. This could take a while...
ERROR: Error installing therubyracer:
ERROR: Failed to build gem native extension.
/Users/me/.rvm/rubies/ruby-1.9.3-p125/bin/ruby extconf.rb
creating Makefile
Compiling v8 for x64
Using python 2.7.5
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Unable to find a compiler officially supported by v8.
It is recommended to use GCC v4.4 or higher
Using compiler: g++
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Unable to find a compiler officially supported by v8.
It is recommended to use GCC v4.4 or higher
libtool: unrecognized option `-static'
libtool: Try `libtool --help' for more information.
make[1]: *** [/Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/libpreparser_lib.a] Error 1
make: *** [x64.release] Error 2
/Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/ext/libv8/location.rb:36:in `block in verify_installation!': libv8 did not install properly, expected binary v8 archive '/Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/tools/gyp/libv8_base.a'to exist, but it was not found (Libv8::Location::Vendor::ArchiveNotFound)
from /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/ext/libv8/location.rb:35:in `each'
from /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/ext/libv8/location.rb:35:in `verify_installation!'
from /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/ext/libv8/location.rb:26:in `install!'
from extconf.rb:7:in `<main>'
GYP_GENERATORS=make \
build/gyp/gyp --generator-output="out" build/all.gyp \
-Ibuild/standalone.gypi --depth=. \
-Dv8_target_arch=x64 \
-S.x64 -Dv8_enable_backtrace=1 -Dv8_can_use_vfp2_instructions=true -Darm_fpu=vfpv2 -Dv8_can_use_vfp3_instructions=true -Darm_fpu=vfpv3
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/allocation.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/atomicops_internals_x86_gcc.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/bignum.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/bignum-dtoa.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/cached-powers.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/conversions.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/diy-fp.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/dtoa.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/fast-dtoa.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/fixed-dtoa.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/once.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/preparse-data.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/preparser.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/preparser-api.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/scanner.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/strtod.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/token.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/unicode.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/utils.o
LIBTOOL-STATIC /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/libpreparser_lib.a
Gem files will remain installed in /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3 for inspection.
Results logged to /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/ext/libv8/gem_make.out
sumber
--with-system-v8
FTW!bundle config build.libv8 --with-system-v8
membantu!bundle update
menyelamatkan saya dari alam mati rasa dan kesengsaraan peningkatan-apel-ditimbulkantherubyracer
permata setelah menyelesaikan yang ini: stackoverflow.com/questions/23536893/…Anda dapat menginstal versi itu di Mavericks:
Saya dapat mengkonfirmasi ini berfungsi dengan rbenv dan ruby 1.9.3p448
sumber
gem install libv8 -- --with-system-v8
Solusi El Capitan untuk saya:
Di mana
REQUIRED_LIBV8_VERSION
untuk saya3.16.14.7
, tetapi Anda perlu memeriksa mana yang Anda butuhkan di bundel Anda (ini adalah untuk rel4.2.5
)Anda juga mungkin perlu menjalankan perintah di atas sebagai superuser (jika permata dan pustaka sistem Anda bersifat global)
sumber
Ketika saya mencoba jawaban yang diterima, libv8 akan berhasil diinstal dengan
gem install libv8
, tetapibundle install
akan gagal pada libv8. Saya pikir itubundle install
sedang mencoba untuk menginstal versi libv8 yang berbeda. Saya dapat menemukan solusi yang berhasil untuk saya.Saya membutuhkan libv8 karena therubyracer tergantung padanya. Untuk menginstalnya, saya mencatat versi yang gagal dipasang di
gem_make.out
log untuk therubyracer. (Jalur untukgem_make.out
log akan ada dalam pesan kegagalan.) Dalam kasus saya ini adalah 3.16.14.7. (Versi ini mungkin akan berubah seiring waktu, kalau-kalau Anda membaca ini tiga tahun dari sekarang.) Lalu saya melakukan ini:gem install libv8 -v 3.16.14.7 -- --with-v8-lib
<- perhatikan tanda yang berbeda dari jawaban yang diterimayang memungkinkan ini berfungsi:
gem install therubyracer
yang memungkinkan saya untuk menyelesaikan
bundle install
.Ini bekerja untuk saya di OSX Yosemite.
sumber
https://github.com/cowboyd/therubyracer/issues/339
Solusi jasonlynes yang ditemukan pada tautan itu membuat trik untuk saya. apa pun tidak berhasil.
sumber
Anda dapat mengonfigurasi bundler alih-alih harus tahu setiap versi. @ 3.15 dapat diganti dengan versi lain.
sumber
Saya memperbarui ke macOS Catalina @ 10.15 dan
ruby 2.6.5
. Setelah beberapa saat mendapatlibv8
dantherubyracer
menginstal lagi, meskipun saya akan merekomendasikan untuk tidak memperbarui macOS (saya dengarruby
seharusnya baik-baik saja).Pertama, saya harus memperbarui XCode
xcode-select --install
Saya biasa
rbenv
memperbaruiruby
, dan mengaturruby
versi secara manual/Users/<username>/.rbenv/version
ke2.6.5
. Meskipun ini seharusnya tidak masalah jika proyek Anda mengandung.ruby-version
file.Lalu aku dibersihkan versi saya menginstal mondar-mandir
libv8
(biasanya dalam/usr/local/opt/
):brew uninstall v8
,brew uninstall [email protected]
brew install [email protected]
Sekarang, ikuti https://github.com/cowboyd/libv8#do-i-get-a-binary , saya menginstal
gem install libv8 -v '3.16.14.19' -- --with-system-v8
dan kemudian bisa berjalan
bundle install
tanpa kesalahan.sumber
Masalah saya adalah sejak
therubyracer
saat pembaruan kemacOS 10.15
danruby-2.6.5
Dan berikut ini bekerja untuk saya:
sumber
Coba dengan apa yang saya rangkum dalam pertanyaan ini: "permata install therubyracer -v '0.10.2'" di osx mavericks tidak menginstal
Ini bekerja untuk saya (OS X Mavericks)
sumber
Saya memiliki masalah yang sama ketika saya memutakhirkan dari OSX Mountain Lion ke OSX Mavericks. Jawaban yang diterima bekerja untuk libv8, tetapi tidak ketika saya pergi untuk bundel menginstal gem therubyracer.
Memutakhirkan dari ruby-1.8.7-p354 ke ruby-1.8.7-375 melakukan trik untuk saya. libv8 (3.16.14.3-x86_64-darwin-13) dan therubyracer (0.12.0) permata dipasang tanpa masalah.
dengan asumsi Anda menggunakan rbenv:
sumber
Ini bekerja dengan baik untuk saya:
Coba pasang permata yang sudah dikompilasi ini:
https://dl.dropboxusercontent.com/u/7919548/gems/libv8/libv8-3.11.8.17-x86_64-darwin-13.gem (sha1: 5ce07aaf4085fff5a5e10fe018fd6b22021bef3b)
Atau jika Anda lebih suka membangun sendiri:
Sumber: https://github.com/cowboyd/libv8/issues/107
Terima kasih kepada Felix Bünemann untuk perbaikannya!
sumber
Saya mencoba sejumlah solusi yang dijabarkan dalam jawaban sebelumnya, tetapi menemukan bahwa menjalankan bundel (untuk menginstal yang lain, permata yang hilang) akan mencoba mengkompilasi ulang libv8 (walaupun sudah berhasil diinstal dengan menggunakan
--with-system-v8
) dan karenanya menderita masalah yang sama.Akhirnya, saya menemukan bahwa menghapus permata libv8, mengambil file permata dari rubygems, dan kemudian menginstal
.gem
file secara manual dengan--with-system-v8
flag bekerja untuk saya.yaitu
Terima kasih atas jawaban Gaurav Agarwal yang telah menuntun saya ke jalan yang benar!
sumber
Tak satu pun dari ini membantu saya ... apa pun yang saya lakukan, instal gemyracer permata saya terus mengeluh dengan kesalahan ini:
Apa yang akhirnya membantu saya adalah forum lain yang saya temukan di https://www.bountysource.com/issues/82833405-libv8-fails-to-build-on-catalina-10-15
Solusi terakhir yang berhasil bagi saya:
Saya harus menambahkan baris ini ke file .zshrc saya:
Kemudian saya harus menjalankan perintah-perintah ini:
Saya harap orang lain menemukan ini berguna!
sumber
Anda dapat mencoba menyusun dan menginstal permata secara manual melalui metode yang disebutkan di situs libv8 github.
sumber
Di MAC-Yosemite dengan lingkungan RVM dan versi ruby-2.1.1
gem install libv8 -v 3.16.14.3 -- --with-v8-lib gem install therubyracer
Ini bekerja dengan bantuan perintah di atas, dapat mengkonfirmasi ini.
sumber
Apa yang benar-benar bekerja untuk saya adalah meningkatkan ruby ke 2.2.0, menghapus Gemfile.lock dan bundling lagi.
Bekerja seperti pesona!
sumber
Inilah yang bekerja untuk saya.
ganti
3.16.14.7
dengan versi Anda.sumber
Saya menghadapi masalah serupa di El Cap. Inilah yang saya lakukan.
Lalu,
Akhirnya,
sumber
Saya menggunakan Xcode versi beta untuk proyek lain dan lupa. Beralih kembali dengan
xcode-select
. Sesuatu seperti:sumber
Hapus dari Gemfile:
gem 'therubyracer',: platform =>: ruby
sumber