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

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)


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

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.


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


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

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


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

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


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.


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.


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 .


1

Setelah berjam-jam mencoba mengupgrade ruby ​​berhasil:

brew install ruby 

dan kemudian menambahkan yang berikut ini ke file gem:

gem 'libv8'  
gem 'therubyracer' 

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

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


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



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

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/v8@3.15/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,.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.