วิธีการติดตั้ง therubyracer gem บน 10.10 Yosemite?


98

ฉันไม่จัดการติดตั้งอัญมณี therubyracer บน Yosemite 10.10

นี่คือบันทึก:

11:53 $ gem ติดตั้ง libv8 -v '3.16.14.3' - - พร้อมระบบ -v8


การสร้างส่วนขยายเนทีฟด้วย: '- with-system-v8'
อาจใช้เวลาสักครู่ ...
ติดตั้ง libv8-3.16.14.3 เรียบร้อยแล้ว
การแยกวิเคราะห์เอกสารสำหรับ libv8-3.16.14.3
การติดตั้งเอกสาร ri สำหรับ libv8-3.16.14.3
เสร็จสิ้นการติดตั้งเอกสารสำหรับ libv8 หลังจาก 0 วินาที
ติดตั้งอัญมณี 1 ชิ้น


02:05 $ gem ติดตั้ง therubyracer -v '0.12.1' - - พร้อมระบบ -v8


การสร้างส่วนขยายเนทีฟด้วย: '- with-system-v8'
อาจใช้เวลาสักครู่ ...
ข้อผิดพลาด: เกิดข้อผิดพลาดในการติดตั้งรูบิเรเซอร์:
    ข้อผิดพลาด: ไม่สามารถสร้างส่วนขยายเนทีฟของอัญมณีได้

    /usr/local/var/rbenv/versions/2.1.2/bin/ruby extconf.rb - พร้อมระบบ -v8
กำลังตรวจสอบ main () ใน -lpthread ... ใช่
ตรวจสอบ main () ใน -lobjc ... ใช่
กำลังตรวจสอบ v8.h ... ไม่
*** extconf.rb ล้มเหลว ***
ไม่สามารถสร้าง Makefile เนื่องจากเหตุผลบางประการอาจไม่จำเป็น
ไลบรารีและ / หรือส่วนหัว ตรวจสอบไฟล์ mkmf.log สำหรับรายละเอียดเพิ่มเติม คุณอาจ
ต้องการตัวเลือกการกำหนดค่า

ตัวเลือกการกำหนดค่าที่ให้มา:
    - ด้วย-opt-dir
    - โดยไม่ต้องเลือก - ผบ
    - พร้อมเลือกรวม
    --without-opt-include = $ {opt-dir} / include
    - ด้วย-opt-lib
    --without-opt-lib = $ {opt-dir} / lib
    - ด้วย -Make-prog
    - โดยไม่ต้องทำ -prog
    --srcdir =.
    - เคอร์เดียร์
    --ruby = / usr / local / var / rbenv / เวอร์ชั่น / 2.1.2 / bin / ruby
    - ด้วย -Pthreadlib
    - โดยไม่ต้อง -pthreadlib
    - ด้วย-objclib
    - โดยไม่ต้องใช้ objclib
    --enable-debug
    - ปิดการใช้งาน - ดีบัก
    - กับ -v8-dir
    - โดยไม่ต้อง -8-dir
    - พร้อม -v8- รวม
    --without-v8-include = $ {v8-dir} / รวม
    - พร้อม -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:in กำหนดค่า: คุณมี เลือกใช้เวอร์ชัน V8 ที่พบในระบบของคุณ (Libv8 :: Location :: System :: NotFoundError)
และ * ไม่ใช่ * อันที่มาพร้อมกับ libv8 rubygem อย่างไรก็ตาม
มันไม่สามารถอยู่ได้ โปรดตรวจสอบว่าคุณมีเวอร์ชัน
v8 ที่เข้ากันได้กับ 3.16.14.3 ติดตั้ง คุณอาจ
จำเป็นต้องพิเศษ - พร้อมตัวเลือก -v8-dir หากไม่ได้มาตรฐาน
สถานที่

ขอบคุณ
ผู้บริหาร

    จาก /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/libv8-3.16.14.3/lib/libv8.rb:7:in config_makefile
    จาก extconf.rb: 32: ใน ''

extconf ล้มเหลวออกรหัส 1

ไฟล์ Gem จะยังคงติดตั้งไว้ใน /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/therubyracer-0.12.1 เพื่อการตรวจสอบ
บันทึกผลลัพธ์ไปที่ /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 ออก

คุณก็ประสบปัญหากับ Yosemite เช่นกัน: D
Dalorzo

ฉันรู้ว่าฉันชอบเป็นนักผจญภัย :-P
Nicolas Blanco

1
ฉันยังมีปัญหากับสิ่งนี้ฉันพยายามทำ brew install v8 ด้วย แต่ไม่ได้ผล
acrogenesis

@sandelius ตรวจสอบคำตอบของฉัน
mmln

คำตอบ:


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

จากนั้นเพียงรวมอัญมณีโครงการของคุณ

นี่เป็นวิธีเดียวที่ใช้ได้ผลสำหรับฉันใน 10.10 (ทับทิม 2.1.2)


2
ขอบคุณ แต่นี่คือ libv8 ฉันกำลังพูดถึงอัญมณี therubyracer
Nicolas Blanco

2
นี่คือสิ่งที่คุณต้องการเพื่อหลีกเลี่ยงปัญหาเกี่ยวกับ therubyracer
mmln

2
ฉันไม่สนหรอกว่าฉันจะทำผิดกฎ ฉันไม่สามารถขอบคุณคุณมากพอ คุณได้บันทึกเส้นตายโครงการใหญ่ไว้ให้ฉัน
AKWF

1
ขอบคุณมันได้ผลสำหรับฉันสำหรับคนที่ชอบคัดลอก / วางอย่างฉันตอนนี้เราอยู่ที่ gem install pkg / libv8-3.16.14.7-x86_64-darwin-14.gem
Christophe Dufour

2
นอกจากนี้ยังควรค่าแก่การกล่าวถึงว่าหากคุณใช้ Gemfile และยังคงมีปัญหาในการติดตั้ง therubyracer อาจเป็นเพราะมี libv8 เวอร์ชันอื่นที่เพิ่มลงใน Gemfile.lock แล้ว เพียงเพิ่มgem 'libv8', '3.16.14.3'(หรือเวอร์ชันใดก็ตามที่เป็น libv8 ที่คุณเพิ่งติดตั้งด้วยตนเอง) และเรียกใช้การอัปเดตบันเดิล libv8 จากนั้นควรติดตั้ง therubyracer
Jon Cairns

258
gem uninstall libv8
brew install v8
gem install therubyracer
gem install libv8 -v '3.16.14.3' -- --with-system-v8

นี่เป็นวิธีเดียวที่ใช้ได้ผลสำหรับฉันใน 10.10 (ทับทิม 2.1.2)

หรือลองgem install libv8 -v 'XX.XX.XX' -- --with-system-v8เพิ่มเวอร์ชั่นของอัญมณี :)

อัปเดตสำหรับ 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
ใช่นี่คือสิ่งที่ช่วยได้โดยไม่ต้องแปลกประหลาดใด ๆ แม้ว่าคุณอาจได้รับข้อผิดพลาด libv8 แต่ให้ทำสิ่งนี้! ขอบคุณ.
pjammer

2
ใช่. นี่คือวิธีที่เหมาะสมที่จะทำ โดยเฉพาะอย่างยิ่งถ้าคุณสร้างทับทิมของคุณขึ้นมาใหม่ด้วยเครื่องมือบรรทัดคำสั่ง 10.10 ล่าสุด
Pankaj Tyagi

3
ทำงานให้ฉันด้วย Ruby 2.1.3 ใน OS X Yosemite
Sarah Vessels

4
นอกจากนี้หากคุณใช้บันเดิลเลอร์และมี Gemfile คุณอาจต้องปรับเป็นเวอร์ชันล่าสุดที่คุณเพิ่งติดตั้ง ตัวอย่างเช่นฉันต้อง (บน OS X Yosemite) ทำสิ่งต่อไปนี้: gem 'therubyracer', '0.12.1'(เพิ่มเวอร์ชัน) แล้วลบออก Gemfile.lock bundle installและทำ มันทำงานได้ดี
paneer_tikka

2
สิ่งนี้ใช้ได้ผลกับฉันเช่นกันใน El Capitan ฉันคิดว่านี่ง่ายกว่ามากและควรเป็นคำตอบที่ยอมรับได้
rcd

42

ไม่มีคำตอบใดที่เหมาะกับฉันในครั้งนี้ ฉันใช้สิ่งนี้มากเกินไป:

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

เห็นในประเด็น Github ของ Rubyracer

หวังว่ามันจะช่วยคนอื่น


ขอบคุณสำหรับสิ่งนี้. ไม่มีแนวทางอื่นใดที่จะใช้ได้กับ El Capitan โดยใช้อัญมณีที่ขึ้นกับเวอร์ชันใหม่ (therubyracer อยู่เบื้องหลัง libv8 ณ จุดนี้)
Matt Mitchell

น่าเศร้าที่คุณพูดถูก ... ข้อผิดพลาดนี้ทำให้ฉันแทบบ้าทุกครั้งที่ฉันเปลี่ยนรุ่นทับทิม
ติดการเข้ารหัสเมื่อ

1
แตะ homebrew / เวอร์ชันเลิกใช้งานแล้วดังนั้นจึงไม่สามารถใช้งานได้อีกต่อไป
mattp

1
ที่จริงgem install therubyracer -- --with-v8-dir=$(brew --prefix v8-315)ทำงานได้ดีกว่าสำหรับฉัน dir ใน mac ของฉันจริง/usr/local/opt/v8@3.15
Junji Zhi

26

บางทีมันอาจจะมีประโยชน์สำหรับใครบางคน แต่ฉันมีปัญหาในการติดตั้ง therubyracer (เนื่องจากมีปัญหากับ libv8) วิธีแก้ปัญหาคือถอนการติดตั้ง libv8 ทั้งหมดที่ฉันติดตั้งไว้ ติดตั้ง 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

ฉันหวังว่านี่จะช่วยใครบางคนได้


ดูเหมือนว่าจะได้ผลสำหรับฉัน แต่ผมอยากจะชี้ให้เห็นว่าวิธีที่ดีที่สุดที่จะถอนการติดตั้งทุกรุ่นของอัญมณี libv8 gem uninstall libv8 -a -xคือ: หากคุณใช้โปรแกรมจัดการเวอร์ชันทับทิม (เช่นrbenvฯลฯ ) สิ่งนี้จะใช้ได้กับทับทิมเวอร์ชันปัจจุบันของคุณเท่านั้น (ในกรณีที่ไม่ชัดเจน)
xentek

👍วิธีนี้ใช้ได้ผลสำหรับฉัน - El Capitan 10.11.6, Ruby - Ruby 1.9.3p448 (2013-06-27 แก้ไข 41675)
sameera207

13

ดูเหมือนว่าสิ่งนี้ได้รับการแก้ไขแล้ว สิ่งที่ได้ผลสำหรับฉันและ @aurels และ @Mike Causer และ @Juanda คือ:

bundle update libv8

7

สิ่งนี้ใช้ได้ผลดีกับ Yosemite และ Ruby 2.1.5 ของฉัน (Ruby ผ่าน RVM)

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

ก่อนหน้านี้มันทำให้ฉันมีข้อผิดพลาดGem::Ext::BuildError: ERROR: Failed to build gem native extension.สำหรับ libv8 gem เวอร์ชัน 3.16.14.3


7

สิ่งนี้ใช้ได้กับฉันใน Yosemite เท่านั้น 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

เพียงเท่านี้ก็แก้ไขปัญหาในการติดตั้งทับทิมสำหรับruby 1.9.3p484และrubyracer 0.12.3
Michael Klishevich

6

ฉันสามารถดำเนินการกับนักแข่งทับทิมได้หลังจากนั้น rm Gemfile.lock

ล่วงหน้า: ฉันติดตั้ง v8 ผ่านbrew install v8แล้วทำgem install libv8 -v '3.16.14.3' -- --with-system-v8

และฉันวิ่ง 10.10 Yosemite


4

พวกเขาได้แก้ไขปัญหานี้แล้วใน libv8 เวอร์ชันล่าสุด ดู: https://github.com/cowboyd/libv8/issues/123

คุณควรติดตั้งจาก github repo ในรางฉันเพิ่มบรรทัดลงใน gemfile ของฉันเช่นนี้ gem "libv8", git: "git://github.com/cowboyd/libv8.git", submodules: true

แก้ไข:

เห็นได้ชัดว่านี่เป็นเพียงการแก้ปัญหาบางส่วนเท่านั้น ฉันติดตั้ง libv8 เวอร์ชันใหม่แล้ว แต่ตอนนี้ rubyracer ยังคงมองหาตัวอื่นที่ฉันคิดอยู่? ยังคงมองหามัน


3

ฉันมีปัญหาเดียวกันกับ Yosemite วิธีแก้ปัญหาของฉันคล้ายกับที่ปรากฏด้านบน

ใช้gem uninstall libv8เพื่อลบสิ่งที่อาจติดตั้ง

ทิ้ง therubyracer ไว้ใน Gemfile ของคุณ แต่ลบการอ้างอิงที่ชัดเจนไปยัง libv8

bundle installวิ่ง

libv8 จากนั้นติดตั้งได้ดีเป็นการอ้างอิง


นี่คือปัญหาของฉัน ฉันมี libv8 หลายเวอร์ชันที่ต่อสู้กัน การล้างออกและปล่อยให้บันเดิลเลอร์แก้ไขการพึ่งพาเป็นสิ่งที่ถูกต้อง
DavidMann10k

2

คำตอบที่อัปเดตสำหรับปี 2018

ฉันอยู่ใน High Sierra บน 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/

คือสิ่งที่ได้ผลสำหรับฉัน

เครดิตไปที่การเข้ารหัส @ เสพติดของเขาคำตอบเดิม


1

หลังจากพยายามอัพเกรดทับทิมได้หลายชั่วโมงแล้ว:

brew install ruby 

จากนั้นเพิ่มสิ่งต่อไปนี้ในไฟล์ gem:

gem 'libv8'  
gem 'therubyracer' 

1

แจ้งให้ทุกคนทราบว่าอาจมีปัญหาของฉัน: ฉันลงเอยด้วยการถอนการติดตั้งเวอร์ชันทับทิมของฉันใน RVM แล้วติดตั้งใหม่ ดูเหมือนว่าจะใช้การอ้างอิงที่ถูกต้องในเครื่องมือ xcode เวอร์ชันล่าสุดสำหรับการรวบรวมทับทิม

rvm list
rvm uninstall ruby-x.x.x
rvm install ruby-x.x.x

0

ฉันทำสิ่งต่อไปนี้

gem install therubyracer

ซึ่งตอนนี้ติดตั้งtherubyracer 0.12.1ซึ่งติดตั้งการอ้างอิงlibv8 (3.16.14.7 x86_64-darwin-14)ซึ่งติดตั้งโดยไม่มีข้อผิดพลาด

ฉันทำสิ่งนี้โดยใช้ruby 2.1.5ที่ฉันติดตั้งผ่าน:

CC=/usr/bin/gcc rbenv install 2.1.5

brew upgrade ruby-buildsซึ่งผมไม่ได้หลังจากทำงาน

หลังจากติดตั้งruby 2.1.5แล้วฉันก็วิ่งด้วย

gem upgrade --system

ที่จะได้รับ rubygems-update 2.4.5


0

สิ่งนี้เกิดขึ้นเนื่องจากความขัดแย้งบางอย่างกับ libv8 เช่นกันแม้ว่าคุณจะสามารถกำหนดเวอร์ชันให้กับ Rubyracer ได้และจะติดตั้ง:

เปลี่ยนสิ่งต่อไปนี้ใน gemfile:

อัญมณี 'therubyracer', '~> 0.12.1'

และทำการติดตั้งบันเดิล



0

วิธีนี้ใช้ได้ผลสำหรับฉันตามวิธีแก้ปัญหาของ Jakub Troszok ด้านบนโดยมีการเปลี่ยนแปลงเล็กน้อย

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

โปรดระบุว่าการเปลี่ยนแปลงเล็กน้อยคืออะไรและพยายามอธิบายว่าเหตุใดจึงได้ผล เนื่องจากคุณกำลังตอบคำถามที่มีอายุ 4 ปีคุณควรเพิ่มรายละเอียดเกี่ยวกับเวอร์ชันที่เกี่ยวข้องด้วย (คำตอบของคุณอาจไม่เกี่ยวข้อง)
คาล

0

ใช้ไดเร็กทอรีของ homebrew ของ v8 สำหรับ--with-v8-dir=/usr/local/Cellar/v8@3.15/3.15.11.18_1แทน/usr/local/opt/v8-315คือสิ่งที่ใช้ได้ผลสำหรับฉันในการเขียนโค้ดคำตอบของผู้ติดยาเสพติด

นี่คือมองเห็นได้ในการชงติดตั้งคำสั่งSummarybrew install v8-315

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.