Làm thế nào để cài đặt gem therubyracer trên 10.10 Yosemite?


97

Tôi không quản lý để cài đặt đá quý therubyracer trên Yosemite 10.10.

Đây là nhật ký:

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


Xây dựng tiện ích mở rộng gốc với: '--with-system-v8'
Điều này có thể mất một thời gian...
Đã cài đặt thành công libv8-3.16.14.3
Tài liệu phân tích cú pháp cho libv8-3.16.14.3
Cài đặt tài liệu ri cho libv8-3.16.14.3
Hoàn tất cài đặt tài liệu cho libv8 sau 0 giây
1 viên ngọc được cài đặt


02:05 $ gem install therubyracer -v '0.12.1' - --with-system-v8


Xây dựng tiện ích mở rộng gốc với: '--with-system-v8'
Điều này có thể mất một thời gian...
LỖI: Lỗi khi cài đặt bộ lọc bụi:
    LỖI: Không thể tạo tiện ích mở rộng gốc đá quý.

    /usr/local/var/rbenv/versions/2.1.2/bin/ruby extconf.rb --with-system-v8
kiểm tra main () trong -lpthread ... có
kiểm tra main () trong -lobjc ... có
kiểm tra v8.h ... không
*** extconf.rb không thành công ***
Không thể tạo Makefile do một số lý do, có thể là thiếu cần thiết
thư viện và / hoặc tiêu đề. Kiểm tra tệp mkmf.log để biết thêm chi tiết. Bạn có thể
cần các tùy chọn cấu hình.

Các tùy chọn cấu hình được cung cấp:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include = $ {opt-dir} / include
    --with-opt-lib
    --without-opt-lib = $ {opt-dir} / lib
    --with-make-prog
    --without-make-prog
    --srcdir =.
    --curdir
    --ruby = / usr / local / var / rbenv / maps / 2.1.2 / bin / ruby
    --with-pthreadlib
    --without-pthreadlib
    --with-objclib
    --without-objclib
    --enable-debug
    --disable-debug
    --with-v8-dir
    --without-v8-dir
    --with-v8-bao gồm
    --without-v8-include = $ {v8-dir} / bao gồm
    --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:in `config ': Bạn có đã chọn để sử dụng phiên bản V8 được tìm thấy trên hệ thống của bạn (Libv8 :: Location :: System :: NotFoundError)
và * không phải * một trong những gói với rubygem libv8. Tuy nhiên,
nó không thể được định vị. hãy đảm bảo rằng bạn có một phiên bản của
v8 tương thích với 3.16.14.3 được cài đặt. Bạn có thể
cần phải có các tùy chọn đặc biệt --with-v8-dir nếu nó không phải là tiêu chuẩn
vị trí

cảm ơn,
Mgmt

    từ /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 `configure_makefile '
    từ extconf.rb: 32: in ''

extconf không thành công, thoát mã 1

Các tệp Gem sẽ vẫn được cài đặt trong /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/therubyracer-0.12.1 để kiểm tra.
Kết quả được ghi vào /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. ngoài

Bạn cũng đang chạy trong vấn đề với Yosemite: D
Dalorzo

Tôi biết, tôi thích trở thành một nhà thám hiểm :-P
Nicolas Blanco

1
Tôi cũng gặp sự cố với điều này, tôi cũng đã thử thực hiện cài đặt brew v8 nhưng không hoạt động
acrogenesis

@sandelius kiểm tra câu trả lời của tôi
mmln

Câu trả lời:


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

sau đó chỉ cần gói các viên ngọc dự án của bạn

đây là cách duy nhất nó hoạt động đối với tôi vào ngày 10.10 (ruby 2.1.2)


2
cảm ơn nhưng đây là libv8, tôi đã nói về đá quý therubyracer.
Nicolas Blanco,

2
đây là những gì bạn cần đến các vấn đề tránh với therubyracer
mmln

2
Tôi không quan tâm nếu tôi vi phạm các quy tắc. Tôi không thể cảm ơn đủ. Bạn đã tiết kiệm thời hạn dự án lớn cho tôi.
AKWF

1
Cảm ơn, nó làm việc cho tôi, chỉ dành riêng cho sao chép / dán chàng trai như tôi, bây giờ chúng ta đang ở gem install pkg / libv8-3.16.14.7-x86_64-darwin-14.gem
Christophe Dufour

2
Cũng cần nhắc lại rằng nếu bạn đang sử dụng Gemfile và vẫn gặp sự cố khi cài đặt therubyracer, thì có thể là do có một phiên bản libv8 khác đã được thêm vào Gemfile.lock. Chỉ cần thêm gem 'libv8', '3.16.14.3'(hoặc bất kỳ phiên bản chính xác nào của libv8 mà bạn vừa cài đặt theo cách thủ công) và chạy cập nhật gói libv8. Sau đó, cài đặt therubyracer.
Jon Cairns

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

đây là cách duy nhất nó hoạt động đối với tôi vào ngày 10.10 (ruby 2.1.2)

Hoặc thử gem install libv8 -v 'XX.XX.XX' -- --with-system-v8thêm phiên bản của đá quý :)

CẬP NHẬT cho 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
Vâng, đây là một trong những hữu ích mà không có bất kỳ sự kỳ lạ. Mặc dù bạn có thể gặp lỗi libv8, hãy làm điều này! cảm ơn.
pjammer

2
Vâng. Đây là cách làm đúng. Đặc biệt nếu bạn đã xây dựng lại viên ruby ​​của mình bằng các công cụ dòng lệnh 10.10 mới nhất.
Pankaj Tyagi

3
Làm việc cho tôi với Ruby 2.1.3 trong OS X Yosemite.
Sarah Vessels

4
Ngoài ra, nếu bạn đang sử dụng Bundler và có Gemfile, bạn có thể cần phải điều chỉnh nó về phiên bản mới nhất mà bạn vừa cài đặt. Ví dụ: tôi phải (trên OS X Yosemite) làm như sau: gem 'therubyracer', '0.12.1'(đã thêm phiên bản). Sau đó gỡ bỏ Gemfile.lock và đã làm bundle install. Nó hoạt động tốt.
paneer_tikka

2
Điều này cũng làm việc cho tôi, trên El Capitan. Tôi nghĩ điều này đơn giản hơn rất nhiều và nên là câu trả lời được chấp nhận.
rcd

42

Không có câu trả lời nào phù hợp với tôi lần này. Tôi cũng đã sử dụng cái này:

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

Đã nhìn thấy các vấn đề về rubyracer Github.

Hy vọng nó sẽ giúp ai đó khác.


Cảm ơn vì điều đó. Không có phương pháp nào khác sẽ hoạt động trên El Capitan bằng cách sử dụng các phiên bản hiện đại của các viên ngọc phụ thuộc. (therubyracer là woefully đằng sau libv8 vào thời điểm này.)
Matt Mitchell

Đáng buồn thay, bạn nói đúng ... Lỗi này khiến tôi phát điên mỗi khi tôi thay đổi phiên bản ruby.
nghiện mã hóa

1
tap homebrew / phiên bản hiện đã không được dùng nữa nên tính năng này không còn hoạt động.
mattp

1
Trên thực tế, gem install therubyracer -- --with-v8-dir=$(brew --prefix v8-315)hoạt động tốt hơn cho tôi. Đồng dir trong máy Mac của tôi thực sự là/usr/local/opt/v8@3.15
Junji Zhi

@JunjiZhi anh bạn giải pháp của bạn hiệu quả với tôi
shubham mishra

26

Có thể nó sẽ hữu ích cho ai đó nhưng tôi gặp sự cố khi cài đặt therubyracer (do các vấn đề với libv8), giải pháp là gỡ cài đặt tất cả libv8 mà tôi đã cài đặt. Cài đặt 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

Tôi hi vọng điêu nay se giup được ai đo.


Điều này dường như đã làm việc cho tôi. Tuy nhiên tôi muốn chỉ ra rằng cách tốt nhất để gỡ bỏ cài đặt tất cả các phiên bản của đá quý libv8 là: gem uninstall libv8 -a -x. Nếu bạn sử dụng trình quản lý phiên bản ruby ​​(ví dụ: rbenvv.v.) thì điều này chỉ hoạt động với phiên bản ruby ​​hiện tại của bạn (trong trường hợp điều đó không rõ ràng).
xentek

👍 giải pháp này đã làm việc cho tôi - El Capitan 10.11.6, Ruby - ruby ​​1.9.3p448 (2013-06-27 bản sửa đổi 41675)
sameera207

13

Có vẻ như điều này đã được sửa ngược dòng. Điều làm việc cho tôi và @aurels và @Mike Causer và @Juanda là:

bundle update libv8

7

Điều này làm việc rất tốt cho tôi trên Yosemite và Ruby 2.1.5 (Ruby thông qua RVM)

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

Trước đó nó đã cho tôi lỗi Gem::Ext::BuildError: ERROR: Failed to build gem native extension.đối với phiên bản đá quý libv8 3.16.14.3


7

Chỉ điều này phù hợp với tôi trong Yosemite của tôi, 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

Chỉ có vấn đề này đã được giải quyết khi cài đặt rubyracer cho ruby 1.9.3p484rubyracer 0.12.3
Michael Klishevich.

6

Tôi đã có thể tiếp tục với tay đua ruby ​​sau khi rm Gemfile.lock

trước: Tôi đã cài đặt v8 qua brew install v8, và sau đó đãgem install libv8 -v '3.16.14.3' -- --with-system-v8

và tôi đang chạy 10.10 Yosemite


4

Họ đã khắc phục sự cố này trong phiên bản mới nhất của libv8. Xem: https://github.com/cowboyd/libv8/issues/123

Bạn nên cài đặt từ repo github, trong đường dẫn, tôi đã thêm một dòng vào tệp gem của mình như thế này gem "libv8", git: "git://github.com/cowboyd/libv8.git", submodules: true

BIÊN TẬP:

Điều này dường như chỉ giải quyết một số vấn đề. Tôi đã cài đặt phiên bản mới của libv8, nhưng bây giờ rubyracer vẫn đang tìm kiếm cái khác mà tôi nghĩ? Vẫn đang xem xét nó.


3

Tôi đã gặp vấn đề tương tự trên Yosemite. Giải pháp của tôi tương tự như những gì xuất hiện ở trên.

Sử dụng gem uninstall libv8để xóa bất kỳ thứ gì có thể được cài đặt.

Để lại therubyracer trong Gemfile của bạn, nhưng xóa mọi tham chiếu rõ ràng đến libv8.

Chạy đi bundle install.

libv8 sau đó được cài đặt tốt như một phụ thuộc.


Đây là vấn đề của tôi. Tôi đã có nhiều phiên bản libv8 chiến đấu với nhau. Xóa chúng ra và để cho Bundler giải quyết sự phụ thuộc là điều đúng đắn cần làm.
DavidMann10k

2

Câu trả lời cập nhật cho năm 2018.

Tôi trên High Sierra, trên 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/

Là những gì đã làm việc cho tôi.

Tín dụng dành cho @ coding-nghiện cho câu trả lời ban đầu của anh ấy .


1

Sau nhiều giờ cố gắng nâng cấp ruby ​​đơn giản đã hoạt động:

brew install ruby 

và sau đó thêm phần sau vào tệp gem:

gem 'libv8'  
gem 'therubyracer' 

1

Thông báo cho bất kỳ ai có thể gặp sự cố của tôi: Tôi đã kết thúc việc gỡ cài đặt phiên bản ruby ​​của mình trong RVM và sau đó cài đặt lại nó. Điều đó dường như sử dụng các phụ thuộc chính xác trong phiên bản mới nhất của công cụ xcode để biên dịch ruby.

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

0

Tôi đã làm như sau

gem install therubyracer

mà bây giờ cài đặt cài therubyracer 0.12.1đặt phụ thuộc libv8 (3.16.14.7 x86_64-darwin-14)cài đặt mà không có lỗi.

Tôi đã làm điều này bằng cách sử dụng ruby 2.1.5mà tôi đã cài đặt qua:

CC=/usr/bin/gcc rbenv install 2.1.5

mà tôi đã làm sau khi chạy brew upgrade ruby-builds.

Sau khi cài đặt ruby 2.1.5, tôi cũng chạy

gem upgrade --system

để có được rubygems-update 2.4.5


0

điều này cũng xảy ra do một số xung đột với libv8, mặc dù bạn chỉ có thể gán một phiên bản cho rubyracer và nó sẽ được cài đặt:

thay đổi những điều sau trong tệp gem:

đá quý 'therubyracer', '~> 0,12.1'

và thực hiện cài đặt gói



0

Giải pháp này đã hoạt động đối với tôi sau giải pháp của Jakub Troszok ở trên chỉ với một thay đổi nhỏ

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

Vui lòng chỉ ra thay đổi nhỏ là gì và cố gắng giải thích tại sao nó hoạt động. Vì bạn đang trả lời một câu hỏi 4 tuổi, bạn cũng nên thêm một số chi tiết về các phiên bản áp dụng (câu trả lời của bạn có thể không phù hợp khi đó).
Michal

0

Sử dụng thư mục của homebrew của v8 --with-v8-dir=/usr/local/Cellar/v8@3.15/3.15.11.18_1thay vì sử dụng thư mục của homebrew /usr/local/opt/v8-315đối với tôi, trong câu trả lời của người nghiện viết mã.

Điều này có thể nhìn thấy trong Summarylệnh cài đặt brew , brew install v8-315.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.