Próbowałem uruchomić gem install json i otrzymałem następujący błąd
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb
creating Makefile
make "DESTDIR=" clean
make "DESTDIR="
compiling generator.c
linking shared-object json/ext/generator.bundle
clang: error: unknown argument: '-multiply_definedsuppress' [-Wunused-command-line-argument-hard-error-in-future]
clang: note: this will be a hard error (cannot be downgraded to a warning) in the future
make: *** [generator.bundle] Error 1
make failed, exit code 2
Gem files will remain installed in /opt/boxen/repo/.bundle/ruby/2.0.0/gems/json-1.8.0 for inspection.
Results logged to /opt/boxen/repo/.bundle/ruby/2.0.0/extensions/universal-darwin-13/2.0.0/json-1.8.0/gem_make.out
Używam:
Os X: 10.9.2
Xcode: 5.1 Wersja kompilacji 5B130a
Narzędzia wiersza poleceń (CLT): 5.1.0.0.1.1393561416
Ruby: ruby 2.0.0p247 (2013-06-27 wersja 41674) [universal.x86_64-darwin13]
Ruby Gem: 2.2 .2
GCC: 4.2.1 Apple LLVM wersja 5.1 (clang-503.0.38) (na podstawie LLVM 3.4svn)
Odpowiedzi:
Napotykam dokładnie ten sam problem po aktualizacji Xcode do 5.1 i wiadomości od Apple nie są dobre. Z uwag do wydania Xcode 5.1 :
Wydaje się, że wszystkie klejnoty naruszające opcje kompilatora muszą zostać zaktualizowane, aby używały prawidłowych opcji. Wyraźnie stwierdzono, że: Ta opcja [obniżanie błędu do ostrzeżenia] nie będzie obsługiwana w przyszłości .
Notatka ostrzegawcza, którą widzimy ( będzie to poważny błąd (nie może być obniżona do ostrzeżenia) w przyszłości ) odpowiada zmianie ogłoszonej w informacjach o wydaniu.
Aby konkretnie odpowiedzieć na swoje pytanie, zainstaluj json gem w następujący sposób:
ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install json
Należy jednak pamiętać, że jest to tylko tymczasowa poprawka.
źródło
ARCHFLAGS
dwa razy: podczas instalowania określonych uszkodzonych klejnotów i podczas uruchamiania Bundlera.clang: error: unknown argument: '-multiply_definedsuppress' [-Wunused-command-line-argument-hard-error-in-future]
żadnych pomysłów?export ARCHFLAGS="..."
, a następnie uruchomić polecenie kompilacji w nowej linii, na przykładgem install json
(sam kompiluję moduły Pythona). Nawiasem mówiąc, nie zapomnij dodać istniejących wcześniej archflagów do linii, w przeciwnym razie zostaną one nadpisane.Jedna linijka, aby to naprawić
źródło
patching file /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin15/rbconfig.rb Hunk #1 FAILED at 82. Hunk #2 FAILED at 125. 2 out of 2 hunks FAILED -- saving rejects to file /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin15/rbconfig.rb.rej
Aby rozwiązać ten problem, możesz zainstalować najnowszą wersję ruby, zgodnie z opisem @Sash. W tym celu możesz użyć następujących poleceń. Jeśli już zainstalowałeś rvm, nie musisz go ponownie instalować.
źródło
Problem już rozwiązany przez Rubiego:
https://bugs.ruby-lang.org/issues/9624
teraz musimy tylko poczekać, aż Apple zaktualizuje swoją wersję Ruby (2.0.0p247) do tej po najnowszej (2.0.0p451), która jeszcze nie wyszła ... (lub zaparz / macport to)
Aktualizacja (2014-05-15): Mavericks 10.9.3 aktualizuje ruby do
ruby 2.0.0p451 (2014-02-24 revision 45167) [universal.x86_64-darwin13]
I wydaje się, że rozwiązuje problem.źródło
@Muncken już odpowiedział, aby zainstalować gem jeden po drugim:
Bazując na odpowiedzi Munckena, próbowałem, że działa również podczas używania
bundle install
źródło
gem install
, próbowałem tobundle install
również działaW moim przypadku faktycznie mam podobny problem, ale nie w systemie Ruby, ale na Rubinach zainstalowanych przez rvm z OSX 10.8 i ma problemy po aktualizacji do OSX 10.9.
Prosta ponowna instalacja działa:
rvm reinstall ruby-2.1.1
źródło
W systemie OSX 10.10 miałem kilka problemów podczas uruchamiania,
rails new firstapp
takich jak:Zaktualizowałem rvm tą konfiguracją i wszystkie błędy zniknęły !:
Po nazwie aplikacji możesz stwierdzić, że właśnie zacząłem bawić się Ruby on Rails, więc powyższe porady mogą, ale nie muszą, działać dla Ciebie.
źródło
Jedna linijka Paula Chechetina wydaje się już nie działać (21.09.15). Jednak ta odpowiedź na post wspomniany w odpowiedzi Pete'a rozwiązała problem za mnie:
sudo gem uninstall compass
sudo gem install compass
źródło
gem install json
ponownie i zadziałało!Żaden z nich nie działał dla mnie.
To, co w końcu zadziałało, to uruchomienie polecenia z sudo -
gem install byebug -v '9.0.6'
źródło
Użyłem prostego rozwiązania ... zainstaluj przez napar
napisz nazwę instalacji
źródło