2013-08-17 9 views
10

Próbuję zainstalować klejnoty do mojego nowego projektu Ruby za pomocą instalacji pakietu. Ustawiłem wersję Ruby używając rbenv na moim systemie OS X 10.8.4. Pojawia się następujący błąd:Błąd podczas instalacji Atomic

An error occurred while installing atomic (1.1.13), and Bundler cannot continue. 
Make sure that `gem install atomic -v '1.1.13'` succeeds before bundling. 
Kikime:jazzcatalog curt$ gem install atomic 
Building native extensions. This could take a while... 
Successfully installed atomic-1.1.13 
1 gem installed 
Kikime:jazzcatalog curt$ rbenv rehash 
Kikime:jazzcatalog curt$ bundle install 
Fetching gem metadata from https://rubygems.org/......... 
Fetching gem metadata from https://rubygems.org/.. 
Using rake (10.1.0) 
Using i18n (0.6.5) 
Using minitest (4.7.5) 
Using multi_json (1.7.9) 
Installing atomic (1.1.13) 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 

/Users/curt/.rbenv/versions/2.0.0-p247/bin/ruby extconf.rb 
/Users/curt/.rbenv/versions/2.0.0-p247/bin/ruby: invalid option -R (-h will show valid  options) (RuntimeError) 


Gem files will remain installed in /Volumes/Data  RAID/htdocs/jazzcatalog/vendor/bundle/gems/atomic-1.1.13 for inspection. 
Results logged to /Volumes/Data RAID/htdocs/jazzcatalog/vendor/bundle/gems/atomic- 1.1.13/ext/gem_make.out 

An error occurred while installing atomic (1.1.13), and Bundler cannot continue. 
Make sure that `gem install atomic -v '1.1.13'` succeeds before bundling. 

Pierwsze dwie linie są końcem wyniku pierwszej próby. Jak widzisz, z powodzeniem zainstalowałem atomic zgodnie z życzeniem. Następnie spróbowałem ponownie i dostałem ten sam błąd. Podczas instalacji atomowej widziałem kilka błędów, ale żaden z nich nie był taki. Wygląda na to, że ma problem z opcją -R. Ponieważ nie wprowadziłem go w pierwszej kolejności, nie wiem, gdzie to zmienić.

Aktualizacja

zacząłem całym rbenv zestaw do wersji 2.0.0-P0 i szyn i prowadził nowy katalog jazz -d mysql. Zmarł w tym samym miejscu z tego błędu:

Installing atomic (1.1.13) 

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 

/Users/curt/.rbenv/versions/2.0.0-p0/bin/ruby extconf.rb 
creating Makefile 

make 
compiling atomic_reference.c 
atomic_reference.c:50:9: warning: implicit declaration of function 'OSAtomicCompareAndSwap64' is invalid in C99 [-Wimplicit-function-declaration] 
if (OSAtomicCompareAndSwap64(expect_value, new_value, &DATA_PTR(self))) { 
    ^
1 warning generated. 
linking shared-object atomic_reference.bundle 

make install 
/usr/bin/install -c -m 0755 atomic_reference.bundle /Volumes/Data RAID/htdocs/jazzcatalog/vendor/bundle/gems/atomic-1.1.13/lib 
usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode] 
      [-o owner] file1 file2 
    install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode] 
      [-o owner] file1 ... fileN directory 
    install -d [-v] [-g group] [-m mode] [-o owner] directory ... 
make: *** [install-so] Error 64 


Gem files will remain installed in /Volumes/Data  RAID/htdocs/jazzcatalog/vendor/bundle/gems/atomic-1.1.13 for inspection. 
Results logged to /Volumes/Data RAID/htdocs/jazzcatalog/vendor/bundle/gems/atomic- 1.1.13/ext/gem_make.out 
An error occurred while installing atomic (1.1.13), and Bundler cannot continue. 
Make sure that `gem install atomic -v '1.1.13'` succeeds before bundling. 

rozwiązany Sigh - nie obsługuje spacji w ścieżce

Odpowiedz

4

Komunikaty o błędach nie dają najmniejszego pojęcia, co jest prawdziwym problemem . Bundler lub składnik, który wywołuje, nie obsługuje poprawnie nazw katalogów zawierających spacje. W moim przypadku było to .../Data RAID/..., które spowodowało problem. Kiedy przeniosłem projekt na inny dysk, na którym nie było miejsca na ścieżce, wszystko działało dobrze. Wygląda na to, że problemem może być tylko lokalizacja klejnotów. We wcześniejszej próbie stworzyłem projekt, w którym klejnoty nie znajdowały się w ścieżce zawierającej spacje, ale projekt był. Nie miałem żadnych problemów, jeśli o to chodziło. Zauważ także, że atomowy klejnot instalacji zakończył się sukcesem.

+0

To brzmi jak ten numer: http://bugs.ruby-lang.org/issues/show/3024, chociaż mówi, że został naprawiony w wersji 2.0.0. –

+0

Prawdopodobnie jest podobny. Mój problem dotyczy Rails, który jest osobną aplikacją. Nie znam ściśle powiązanej dwóch grup rozwojowych lub jeśli kod jest współdzielony między aplikacjami. – curt

+0

Dla tego rodzaju problemów powinna istnieć wersja StackWTF. Tysiące dzięki tobie @curt – sonxurxo

8

Dla tych, którzy tę stronę, googlowania, I rozwiązać podobny problem podczas instalacji atomowej (1.1.13) na mac ten sposób:

sudo ln -s /usr/bin/llvm-gcc-4.2 /usr/bin/gcc-4.2 

Wydaje się, że z powodu sprzecznych aktualizacjach Xcode.

+1

Dzięki za uwzględnienie Twojego rozwiązania. Nie jest to łatwy problem z debugowaniem. – curt

+1

Musiałem odtworzyć ten link po aktualizacji do Mavericks. Mój stary simplink był do /usr/bin/llvm-gcc-4.2 i musiałem go zmienić tak, aby wskazywał na/usr/bin/llvm-gcc (proszę zwrócić uwagę na brak postfiksu 4.2). –

0

Jeśli próbujesz zainstalować Atomic (lub aktualizację pakietu - i to w przypadku atomu), na Mac/OSX - będziesz musiał zainstalować lub zaktualizować narzędzia wiersza poleceń dla XCode dla dowolnej wersji systemu operacyjnego, z której korzystasz .

Jak wspomniano powyżej, ale mam wrażenie, że ta odpowiedź jest trochę ezoteryczna. Atomic potrzebuje tych narzędzi do wielowątkowości.

0

ja się komunikat o błędziesamo i wydaje się, że zostały spowodowane przez (pozornie nieszkodliwe jeszcze błędne) linii w moim Gemfile. W przypadku prawidłowego użycia (w systemie używającym RVM) te dwie linie powinny być w stanie używać poprawnej wersji Ruby i pożądanego zestawu gemsetów.

ruby '2.0.0' 
#ruby-gemset=railstut_rails_4_0 ; [email protected]_rails_4_0 

Byłem pod wrażeniem, że ja po prostu dodając komentarz z drugiej line- jednak RVM (przez design/zgodnie z oczekiwaniami) stworzył nową gemset z nazwą „* railstut_rails_4_0; ruby-2.0.0- p247 @ railstut_rails_4_0 * "ze spacjami i znakami specjalnymi. Za każdym razem, gdy uruchamiałem instalację pakietu - nawet po zmianie nazwy w Gemfile - RVM załadował bieżący błędny gemset. Aby rozwiązać ten problem, zrobiłem co następuje:

  1. $ rvm użyj ruby-2.0.0-p247 @ railstut_rails_4_0
  2. Aktualizacja Gemfile: Pierwsze dwie z poniższych linii dla korzyści konfiguracji RVM; następnie komentarzu do użytku osobistego:

    ruby '2.0.0'
    #ruby-gemset=railstut_rails_4_0
    #[email protected]_rails_4_0

  3. pakiet zainstalować --without produkcja

  4. aktualizacja wiązka
  5. pakiet zainstalować
19

miałem tego problemu. Okazało się, że jest spowodowane instalacją Mac OS 10.9 (Mavericks), ponieważ Mavericks ma nowe autonomiczne narzędzia linii poleceń oddzielne od Xcode. Aby rozwiązać ten problem, usunąłem/Applications/Xcode, a następnie zainstalować narzędzia samodzielnym wiersza poleceń poprzez:

Uwaga: nie może być potrzebna Pierwszy wiersz, zobaczyć komentarze poniżej

sudo rm -rf /Applications/Xcode 
xcode-select --install 

następnie kliknij „zainstalować 'z okna pop-up OSX

źródło: http://www.computersnyou.com/2025/2013/06/install-command-line-tools-in-osx-10-9-mavericks-how-to/

+2

Być może będziesz musiał wyrazić zgodę na nową umowę licencyjną. I rand 'sudo gcc -v', aby upewnić się, że mam wersję 4.2 to wtedy skłonił mnie do zaakceptowania umowy licencyjnej. "Gem gem" pracował po tym. –

+0

@BlakeErickson Nie sądzę, abym musiał podpisać jakąkolwiek umowę, gdy wykonałem te kroki. Być może podpisałem to wcześniej. – webdevguy

+0

Ditto o konieczności uruchomienia sudo gcc -v, aby zaakceptować umowę licencyjną. Utknąłem przez kilka godzin, a wy mnie uratowaliście. Dzięki. – Agazoom

0

Dla tych, którzy dostali tu googlowania: wpadłem na coś podobnego z atomowej 1.1.14.

W moim przypadku był to program Avast (program antywirusowy), który nie pozwoliłby mi na wykonanie pliku specyficznego dla atomu.

Zostało to rozwiązane przez wykluczenie pliku z Avast, a następnie ponowne uruchomienie gem install atomic -v '1.1.14'.

0

Używam Mac OS Lion, a do rozwiązania tego problemu zainstalowałem nowe narzędzia wiersza poleceń. Kroki: Otwórz XCode -> Pobierz -> Zainstaluj narzędzia wiersza poleceń. Po prostu to.

0

To 100% ma związek ze spacjami na ścieżce. Błąd, który wypluwa, pokazuje próbę instalacji. Irytujący błąd.