"gem install therubyracer-v '0.10.2 '" на osx mavericks не устанавливается
попытка установить therubyracer на mavericks с помощью "gem install therubyracer-v '0.10.2' " но я получаю следующую ошибку:
/Users/dennischen/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb
checking for main() in -lobjc... yes
creating Makefile
make
compiling rr.cpp
clang: warning: argument unused during compilation: '-rdynamic'
rr.cpp:48:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
1 warning generated.
compiling v8.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_array.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_callbacks.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_context.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_date.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_debug.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_exception.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_exception.cpp:10:16: warning: unused variable 'stack' [-Wunused-variable]
static void* stack[20];
^
1 warning generated.
compiling v8_external.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_external.cpp:10:9: warning: unused variable 'references' [-Wunused-variable]
VALUE references;
^
1 warning generated.
compiling v8_function.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_handle.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_locker.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_locker.cpp:45:5: warning: control reaches end of non-void function [-Wreturn-type]
}
^
v8_locker.cpp:85:5: warning: control reaches end of non-void function [-Wreturn-type]
}
^
2 warnings generated.
compiling v8_message.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_object.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_object.cpp:77:19: warning: unused variable 'proto' [-Wunused-variable]
Handle<Value> proto(rr_rb2v8(prototype));
^
1 warning generated.
compiling v8_script.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_string.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_template.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_try_catch.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_v8.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_value.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_value.cpp:100:9: warning: unused function 'ToInt32' [-Wunused-function]
VALUE ToInt32(VALUE self) {
^
1 warning generated.
compiling v8_weakref.cpp
clang: warning: argument unused during compilation: '-rdynamic'
linking shared-object v8.bundle
clang: error: no such file or directory: '/Users/dennischen/.rvm/gems/ruby-1.9.3-p194@panini/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a'
make: *** [v8.bundle] Error 1
может ли кто-нибудь помочь мне понять, как заставить этот камень работать? У меня установлены инструменты командной строки.
12 ответов:
Если вы решили использовать более новый
therubyracerверсия gem, у вас больше не будет этой проблемыв противном случае:
brew tap homebrew/dupes # Thanks Tom brew install apple-gcc42 export CC=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 export CXX=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2 export CPP=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2 brew uninstall v8 gem uninstall libv8 gem install therubyracer -v '0.10.2' # specify version
так что я, наконец, получил его работу после некоторых усилий... спасибо Саймону и Альваро.
у меня есть одна вещь, чтобы добавить, хотя, используя флаг --с-system-v8 не работает для меня... Поэтому я удалил свою систему v8 с
brew uninstall v8и
gem install libv8если вы уже запустили
gem install libv8С флагом system v8 обязательно удалите эту версию gem (сделайте это, запустивgem uninstall libv8). Главное, что вы не должны использовать один из них, предоставленный brew, похоже, не работает в Mavericks (он хорошо устанавливается, и bundler сообщит, что ваш пакет завершен, но ваше приложение не будет работать, когда оно попытается использовать v8).чтобы суммировать ответ, для меня сработало следующее:
brew install apple-gcc42 sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 /usr/bin/gcc sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2 /usr/bin/g++ sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2 /usr/bin/cpp brew uninstall v8 gem install libv8 gem install therubyracer
у меня была такая же проблема, это работает для меня:
therubyracer (0.10.2) & libv8 (3.3.10.4)
прежде всего:
brew install apple-gcc42- вы должны связать все двоичные файлы компиляторов (
gcc,cpp,g++) к/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/<compiler>после, вы можете попробовать это:
brew install v8gem install libv8 -v '3.3.10.4' -- --with-system-v8gem install therubyracer -v 'therubyracer'илиbundle installв каталоге железнодорожный проект.
у меня просто была такая же проблема и одно решение в настоящее время использовать apple-gcc42 вместо лязгом чтобы скомпилировать оба драгоценных камня:
brew install apple-gcc42и тогда у вас есть выбор между выполнением некоторых символических ссылок в /usr / bin для {gcc,g++, c++} двоичных файлов:
sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 /usr/bin/gcc sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2 /usr/bin/g++ sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2 /usr/bin/cppв самом деле g++ должно быть достаточно.
или...вы можете экспортировать переменные среды CC/CXX/CPP с путями, соответствующими созданным двоичным файлам от доморощенного. Это, конечно, более чистый обходной путь.
третье решение-загрузить Xcode 4.6.3 и установить его в приложения. Затем введите в терминале:
sudo xcode-select --switch /Applications/Xcode4.6.3.app/Contents/Developer gem install therubyracerпосле того, как камень был установлен, вы можете переключиться обратно в Xcode 5.0 :
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
Я нашел обходной путь, который работал без установки apple-gcc42.
это будет работать, если вы получаете сообщение об ошибке выглядит так:
clang: error: no such file or directory: '/Users/mscottford/.rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a'затем вы должны быть в состоянии сделать следующее:
brew install v8 bundle install # after failing create link from brew installed v8 to error location ln -s /usr/local/Cellar/v8/3.21.17/lib/libv8_base.x64.a /Users/mscottford/.rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a bundle installИсточник:https://github.com/cowboyd/therubyracer/issues/277#issuecomment-27734348
как было предложено во многих ответах, проще всего скомпилировать собственные расширения Ruby Racer с помощью Apple GCC 4.2 (вместо версии, установленной с помощью Xcode).
если вы используете MacPorts, вам не нужно вручную настраивать символические ссылки для двоичных файлов GCC. Элемент
port selectкоманда сделает это за вас. Если вы не обновляли MacPorts с момента установки Mavericks, сделайтеsudo port selfupdate. С MacPorts up-to-date, попробуйте следующее:# If you don't have it, install the port for Apple's GCC 4.2 sudo port install apple-gcc42 # OR # If you had apple-gcc42 already (before Mavericks), update it sudo port upgrade apple-gcc42 # Same result as manual symlinking of GCC in other answers sudo port select gcc apple-gcc42 && hash -r # Install therubyracer, will install libv8 gem dependency # *note* if you have any existing versions of these gems, remove them gem install therubyracer # Restore GCC to system default (optional) sudo port select gcc none && hash -rIn вообще эта процедура (
sudo port select gcc [version]) будет работать в любое время, когда вы хотите использовать конкретную версию GCC вместо установленной Xcode (Apple LLVM v5 для 10.9 Mavericks/Xcode 5).
мне удалось установить therubyracer 0.12 и libv8 3.16.14.3 на ruby 2.0. 0p353 и os x 10.9
libv8 требует gcc42
brew install v8 brew install apple-gcc42 sudo ln -sf /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 /usr/bin/gcc sudo ln -sf /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2 /usr/bin/g++ sudo ln -sf /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2 /usr/bin/cpp gem install libv8therubyracer требует более позднего gcc
brew install gcc49 sudo ln -sf /usr/local/Cellar/gcc49/4.9-20131110/bin/gcc-4.9 /usr/bin/gcc sudo ln -sf /usr/local/Cellar/gcc49/4.9-20131110/bin/g++-4.9 /usr/bin/g++ sudo ln -sf /usr/local/Cellar/gcc49/4.9-20131110/bin/cpp-4.9 /usr/bin/cppGemfile
gem 'therubyracer', :require => 'v8', :platforms => :rubyиспользовать
bundleвместоgem install therubyracer
Это должно быть безотказным и чистым способом (без символических ссылок) для установки therubyracer для тех, у кого возникли проблемы.
взято из: gem установить therubyracer-v 0.11.4 не удается на OS X 10.10
установите Xcode (если у вас еще нет одной из этих версий) 6.1.1, 6.2-beta или 6.3-beta и (это необходимо) 4.6.3
gem uninstall libv8Если вы еще не сделали этого!--6-->переключиться на Xcode 4.6.3
sudo xcode-select --switch /Applications/Xcode4.6.3.app/Contents/Developer
gem install libv8 -v '3.11.8.17'или в зависимости от того, какая версия привязана к вашей версии therubyracerпереключитесь на Xcode 6.1.1, 6.2-beta или 6.3-beta (или если вы хотите попробовать свою текущую установку Xcode, отрегулируйте эту строку, я подтвердил все 3 из этих работ)
sudo xcode-select --switch /Applications/Xcode6.1.1.app/Contents/Developer
gem install therubyracer -v '0.11.4'или версия, которую вы пытаетесь установить.
У меня была почти идентичная ошибка при попытке установить therubyracer 0.12.0, чтобы заставить его работать с libv8. Это сработало для меня:
$ brew upgrade gcc $ gem uninstall therubyracer $ gem uninstall libv8 $ gem install therubyracer -v '0.12.0' Fetching: therubyracer-0.12.0.gem (100%) Building native extensions. This could take a while... Successfully installed therubyracer-0.12.0 1 gem installed $ gem install libv8 -v '3.16.14.3' -- --with-system-v8 Fetching: libv8-3.16.14.3.gem (100%) Building native extensions with: '--with-system-v8' This could take a while... Successfully installed libv8-3.16.14.3 1 gem installed
У меня была такая же проблема, когда я обновился с OSX Mountain Lion до OSX Mavericks.
обновление с ruby-1.8.7-p354 до ruby-1.8.7-375 сделало трюк для меня.
возможно, попробуйте обновить ruby 1.9.3-p194 до rc1 (1.9.3 теперь выше p484)
предполагая, что вы используете rbenv:
rbenv install 1.9.3-rc1 rbenv rehash rbenv global 1.9.3-rc1 bundle install
у меня была эта проблема после обновления с Mavericks до Yosemite. Проблема заключалась в том, что я скомпилировал свою версию Ruby со старой версией OSX.
если бы я побежал
ruby -rubygems -e 'puts Gem::Platform.new(RUBY_PLATFORM)'Я бы
x86_64-darwin-13вместоx86_64-darwin-14для Йосемити.чтобы переустановить Ruby I
- полностью удалена старая версия:
rvm remove ruby-2.1.1- переустановлен из исходного кода (--disable-binary не использует предварительно скомпилированные двоичные файлы и заставляет a build):
rvm reinstall --disable-binary 2.1тогда я смог бежать
bundle installбез ошибок после попытки всех решений выше.
то, что я сделал, было на osx mavericks:
git clone [email protected]:cowboyd/therubyracer.gitзатем:
gem build therubyracer.gemspec gem install therubyracer-0.12.1.gemэта процедура загрузила двоичную версию libv8 и установила ее.
Comments