วิธีการติดตั้ง 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.