Bagaimana cara memasang permata therubyracer di 10.10 Yosemite?

97

Saya tidak berhasil menginstal permata therubyracer di Yosemite 10.10.

Ini lognya:

11:53 $ gem instal libv8 -v '3.16.14.3' - --with-system-v8


Membangun ekstensi asli dengan: '--with-system-v8'
Ini bisa memakan waktu cukup lama...
Berhasil menginstal libv8-3.16.14.3
Dokumentasi parsing untuk libv8-3.16.14.3
Menginstal dokumentasi ri untuk libv8-3.16.14.3
Selesai menginstal dokumentasi untuk libv8 setelah 0 detik
1 permata terpasang


02:05 $ permata menginstal therubyracer -v '0.12.1' - --with-system-v8


Membangun ekstensi asli dengan: '--with-system-v8'
Ini bisa memakan waktu cukup lama...
KESALAHAN: Kesalahan memasang therubyracer:
    EROR: Gagal membangun ekstensi asli permata.

    /usr/local/var/rbenv/versions/2.1.2/bin/ruby extconf.rb --with-system-v8
memeriksa main () di -lpthread ... ya
memeriksa main () di -lobjc ... ya
memeriksa v8.h ... tidak
*** extconf.rb gagal ***
Tidak dapat membuat Makefile karena beberapa alasan, mungkin kurang diperlukan
perpustakaan dan / atau header. Periksa file mkmf.log untuk lebih jelasnya. Kamu boleh
membutuhkan opsi konfigurasi.

Opsi konfigurasi yang disediakan:
    --dengan-opt-dir
    --tanpa-opt-dir
    --dengan-opt-include
    --without-opt-include = $ {opt-dir} / include
    --dengan-opt-lib
    --without-opt-lib = $ {opt-dir} / lib
    --dengan-make-prog
    --tanpa-membuat-prog
    --srcdir =.
    --curdir
    --ruby = / usr / local / var / rbenv / versi / 2.1.2 / bin / ruby
    --dengan-pthreadlib
    --tanpa-pthreadlib
    --with-objclib
    --tanpa-objclib
    --enable-debug
    --disable-debug
    --dengan-v8-dir
    --tanpa-v8-dir
    --with-v8-include
    --without-v8-include = $ {v8-dir} / include
    --with-v8-lib
    --without-v8-lib = $ {v8-dir} / lib
/usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/libv8-3.16.14.3/ext/libv8/location.rb:50: di `configure ': Anda punya dipilih untuk menggunakan versi V8 yang ditemukan di sistem Anda (Libv8 :: Location :: System :: NotFoundError)
dan * bukan * yang digabungkan dengan rubygem libv8. Namun,
itu tidak dapat ditemukan. pastikan Anda memiliki versi
v8 yang kompatibel dengan 3.16.14.3 diinstal. Kamu boleh
perlu khusus opsi --with-v8-dir jika dalam non-standar
lokasi

Terima kasih,
Manajemen tersebut

    dari /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/libv8-3.16.14.3/lib/libv8.rb:7: di `configure_makefile '
    dari extconf.rb: 32: dalam ''

extconf gagal, kode keluar 1

File permata akan tetap terpasang di /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/therubyracer-0.12.1 untuk diperiksa.
Hasil dicatat ke /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/extensions/x86_64-darwin-14/2.1.0-static/therubyracer-0.12.1/gem_make. di luar
Nicolas Blanco
sumber
Anda juga mengalami masalah dengan Yosemite: D
Dalorzo
Saya tahu, saya suka menjadi seorang petualang :-P
Nicolas Blanco
1
Saya juga mengalami masalah dengan ini saya mencoba melakukan brew install v8, juga tetapi tidak berhasil
acrogenesis
@sandelius periksa jawaban saya
mmln

Jawaban:

68
git clone https://github.com/cowboyd/libv8.git
cd libv8
bundle install
bundle exec rake clean build binary
gem install pkg/libv8-3.16.14.3-x86_64-darwin-12.gem #note that libv8 version may change, so tab through files in pkg/, also remember to use the one with version specified

lalu gabungkan permata proyek Anda

ini adalah satu-satunya cara itu bekerja untuk saya di 10.10 (ruby 2.1.2)

mmln
sumber
2
terima kasih tapi ini libv8, saya berbicara tentang permata therubyracer.
Nicolas Blanco
2
inilah yang Anda butuhkan untuk menghindari masalah dengan therubyracer
mmln
2
Saya tidak peduli jika saya melanggar aturan. Saya tidak bisa cukup berterima kasih. Anda telah menghemat tenggat waktu proyek besar untuk saya.
AKWF
1
Terima kasih, ini berhasil untuk saya, hanya untuk salin / tempel orang seperti saya, kami sekarang di gem install pkg / libv8-3.16.14.7-x86_64-darwin-14.gem
Christophe Dufour
2
Perlu juga disebutkan bahwa jika Anda menggunakan Gemfile dan masih mengalami masalah dalam menginstal subyracer, itu mungkin karena ada versi libv8 yang berbeda yang telah ditambahkan ke Gemfile.lock. Cukup tambahkan gem 'libv8', '3.16.14.3'(atau apa pun versi libv8 yang baru saja Anda instal secara manual), dan jalankan pembaruan bundel libv8. Itu kemudian harus menginstal therubyracer.
Jon Cairns
257
gem uninstall libv8
brew install v8
gem install therubyracer
gem install libv8 -v '3.16.14.3' -- --with-system-v8

ini adalah satu-satunya cara itu bekerja untuk saya di 10.10 (ruby 2.1.2)

Atau coba gem install libv8 -v 'XX.XX.XX' -- --with-system-v8tambahkan versi permata :)

UPDATE untuk Mac OS Catalina:

brew tap homebrew/versions
brew install v8@3.15
brew link --force v8@3.15
gem install libv8 -v 'XX.XX.XX' -- --with-system-v8
gem install therubyracer
Wylkon
sumber
3
Ya, ini yang membantu tanpa ada keanehan. Meskipun Anda mungkin baru saja mendapatkan kesalahan libv8, lakukan ini! Terima kasih.
pjammer
2
Ya. Ini cara yang benar untuk melakukannya. Khususnya jika Anda telah membangun kembali ruby ​​Anda dengan alat baris perintah 10.10 terbaru.
Pankaj Tyagi
3
Bekerja untuk saya dengan Ruby 2.1.3 di OS X Yosemite.
Sarah Vessels
4
Selain itu, Jika Anda menggunakan bundler dan memiliki Gemfile, Anda mungkin perlu menyesuaikannya dengan versi terbaru yang baru saja Anda instal. Misalnya, saya harus (di OS X Yosemite) melakukan hal berikut: gem 'therubyracer', '0.12.1'(menambahkan versinya). Kemudian menghapus Gemfile.lock dan melakukannya bundle install. Ini bekerja dengan baik.
paneer_tikka
2
Ini berhasil juga untuk saya, di El Capitan. Saya pikir ini jauh lebih sederhana dan harus menjadi jawaban yang diterima.
rcd
42

Tidak ada jawaban yang berhasil untuk saya kali ini. Saya juga menggunakan ini:

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

Terlihat pada masalah rubyracer Github.

Semoga bisa membantu orang lain.

kecanduan coding
sumber
Terima kasih untuk ini. Tak satu pun dari pendekatan lain akan bekerja pada El Capitan menggunakan versi modern dari permata dependen. (therubyracer sayangnya berada di belakang libv8 saat ini.)
Matt Mitchell
Sayangnya Anda benar ... Kesalahan ini membuat saya gila setiap kali saya mengganti versi ruby.
kecanduan coding
1
tap homebrew / versi sekarang sudah usang jadi ini tidak lagi berfungsi.
mattp
1
Sebenarnya, gem install therubyracer -- --with-v8-dir=$(brew --prefix v8-315)bekerja lebih baik untuk saya. Dir di Mac saya sebenarnya/usr/local/opt/[email protected]
Junji Zhi
26

Mungkin ini akan berguna untuk seseorang tetapi saya memiliki masalah dalam menginstal subyracer (karena masalah dengan libv8) solusinya adalah menghapus semua libv8 yang telah saya instal. Pasang therubyracer

$ gem uninstall libv8
$ gem install therubyracer -v '0.12.0'
Fetching: libv8-3.16.14.7-x86_64-darwin-14.gem ( 57%)
Fetching: libv8-3.16.14.7-x86_64-darwin-14.gem (100%)
Successfully installed libv8-3.16.14.7-x86_64-darwin-14
Building native extensions.  This could take a while...
Successfully installed therubyracer-0.12.0
2 gems installed

Saya harap ini membantu seseorang.

Jakub Troszok
sumber
Ini sepertinya berhasil untuk saya. Namun saya ingin menunjukkan bahwa cara terbaik untuk menghapus semua versi permata libv8 adalah: gem uninstall libv8 -a -x. Jika Anda menggunakan pengelola versi ruby ​​(misalnya rbenv, dll) maka ini hanya berfungsi untuk ruby ​​versi Anda saat ini (jika itu tidak jelas).
xentek
👍 solusi ini berhasil untuk saya - El Capitan 10.11.6, Ruby - ruby ​​1.9.3p448 (revisi 2013-06-27 41675)
sameera207
13

Sepertinya ini telah diperbaiki di hulu. Apa yang berhasil untuk saya dan @aurels dan @Mike Causer dan @Juanda adalah:

bundle update libv8
Martin T.
sumber
7

Ini bekerja dengan sangat baik untuk saya di Yosemite dan Ruby 2.1.5 (Ruby melalui RVM)

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

Sebelumnya itu memberi saya kesalahan Gem::Ext::BuildError: ERROR: Failed to build gem native extension.untuk permata libv8 versi 3.16.14.3

Rohan Daxini
sumber
7

Hanya ini yang berfungsi untuk saya di Yosemite saya, Ruby 2.1.2:

gem install libv8 -v '3.16.14.3' -- --with-system-v8
brew link --overwrite v8-315 --force
gem install therubyracer -v '0.12.2' -- --with-system-v8
aquajach
sumber
Hanya ini memecahkan masalah pemasangan rubyracer untuk ruby 1.9.3p484danrubyracer 0.12.3
Michael Klishevich
6

Saya bisa melanjutkan dengan pembalap ruby ​​setelahnya rm Gemfile.lock

sebelumnya: Saya menginstal v8 via brew install v8, dan kemudian melakukannyagem install libv8 -v '3.16.14.3' -- --with-system-v8

dan saya menjalankan 10.10 Yosemite

CloudMagick
sumber
4

Mereka telah memperbaiki masalah ini di versi terbaru libv8. Lihat: https://github.com/cowboyd/libv8/issues/123

Anda harus menginstal dari repo github, di rel saya menambahkan baris ke gemfile saya seperti ini gem "libv8", git: "git://github.com/cowboyd/libv8.git", submodules: true

EDIT:

Ini rupanya hanya menyelesaikan beberapa masalah. Saya menginstal versi baru libv8, tetapi sekarang rubyracer masih mencari yang lain menurut saya? Masih memeriksanya.

Borromakot
sumber
3

Saya memiliki masalah yang sama di Yosemite. Solusi saya mirip dengan yang muncul di atas.

Gunakan gem uninstall libv8untuk menghapus apa pun yang mungkin diinstal.

Tinggalkan therubyracer di Gemfile Anda, tetapi hapus referensi eksplisit apa pun ke libv8.

Lari bundle install.

libv8 kemudian diinstal dengan baik sebagai dependensi.

Martin Streicher
sumber
Ini adalah masalah saya. Saya memiliki beberapa versi libv8 yang saling berkelahi. Menghapusnya dan membiarkan bundler menyelesaikan ketergantungan adalah hal yang benar untuk dilakukan.
DavidMann10k
2

Jawaban yang diperbarui untuk 2018.

Saya di High Sierra, di Homebrew 1.6.1

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@3.15/

Apa yang berhasil untuk saya.

Penghargaan diberikan kepada @ coding-addicted untuk jawaban aslinya .

alexggordon.dll
sumber
1

Setelah berjam-jam mencoba mengupgrade ruby ​​berhasil:

brew install ruby 

dan kemudian menambahkan yang berikut ini ke file gem:

gem 'libv8'  
gem 'therubyracer' 
ashwin tang
sumber
1

Hubungi siapa pun yang mungkin mengalami masalah saya: Saya akhirnya mencopot pemasangan versi ruby ​​saya di RVM dan kemudian memasangnya kembali. Itu sepertinya menggunakan dependensi yang benar di versi terbaru alat xcode untuk menyusun ruby.

rvm list
rvm uninstall ruby-x.x.x
rvm install ruby-x.x.x
colsen
sumber
0

Saya melakukan hal berikut

gem install therubyracer

yang sekarang menginstal therubyracer 0.12.1yang menginstal dependensilibv8 (3.16.14.7 x86_64-darwin-14) yang diinstal tanpa kesalahan.

Saya melakukan ini menggunakan ruby 2.1.5yang saya instal melalui:

CC=/usr/bin/gcc rbenv install 2.1.5

yang saya lakukan setelah berlari brew upgrade ruby-builds .

Setelah menginstal ruby 2.1.5, saya juga menjalankan

gem upgrade --system

mendapatkan rubygems-update 2.4.5

Chris Beck
sumber
0

ini juga terjadi karena beberapa konflik dengan libv8, meskipun Anda dapat menetapkan versi ke rubyracer dan itu akan diinstal:

ubah yang berikut di gemfile:

permata 'therubyracer', '~> 0.12.1'

dan lakukan pemasangan bundel

abcd_win
sumber
0

Solusi ini berhasil untuk saya mengikuti solusi Jakub Troszok di atas hanya dengan sedikit perubahan

gem uninstall libv8
gem install therubyracer -v '0.12.1'
    Fetching: libv8-3.16.14.19-x86_64-darwin-18.gem (100%)
    Successfully installed libv8-3.16.14.19-x86_64-darwin-18
    Building native extensions.  This could take a while...
    Successfully installed therubyracer-0.12.1
    Parsing documentation for libv8-3.16.14.19-x86_64-darwin-18
    Installing ri documentation for libv8-3.16.14.19-x86_64-darwin-18
    Parsing documentation for therubyracer-0.12.1
    Installing ri documentation for therubyracer-0.12.1
    Done installing documentation for libv8, therubyracer after 0 seconds
    2 gems installed
gem install libv8 -v '3.16.14.17' -- --with-system-v8  (if the libv8 version required for your project is different from the one installed by rubyracer)
bundle install
dchhatani.dll
sumber
Harap tunjukkan apa itu perubahan kecil dan coba jelaskan mengapa ini berhasil. Karena Anda menjawab pertanyaan 4 tahun, Anda juga harus menambahkan beberapa detail tentang versi yang berlaku (jawaban Anda mungkin tidak relevan saat itu).
Michal
0

Menggunakan direktori homebrew v8 untuk --with-v8-dir=/usr/local/Cellar/[email protected]/3.15.11.18_1, alih-alih /usr/local/opt/v8-315, adalah yang berhasil bagi saya, dalam pengkodean jawaban kecanduan.

Ini terlihat di Summaryperintah brew install brew install v8-315,.

foamroll
sumber