2013-08-17 51 views
10

我正嘗試使用軟件包安裝將寶石安裝到我的新Ruby項目中。我在我的OS X 10.8.4框中使用rbenv設置了Ruby的版本。我收到以下錯誤:安裝原子的錯誤

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. 

前兩行是第一次嘗試輸出的結尾。正如你所看到的,我然後成功地按要求安裝了原子。然後我再次嘗試並得到相同的錯誤。我在安裝atomic時看到了一些錯誤,但沒有一個像這樣。似乎-R選項有問題。由於我沒有首先輸入,所以我不知道要在哪裏改變它。

更新

我開始遍佈rbenv設置爲2.0.0版本-P0和跑軌道新爵士目錄-d mysql的。它死在同一個地方,出現此錯誤:

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. 

解決 的嘆息 - 不處理路徑中的空格

回答

4

錯誤消息不給絲毫的線索,真正的問題是什麼。 Bundler或其調用的組件不能正確處理其中包含空格的目錄名稱。在我的情況下是.../Data RAID/...導致了這個問題。一旦我將項目移動到不同的驅動器中,路徑中將沒有空格,一切正常。看來,它可能只是問題的寶石的位置。在之前的嘗試中,我創建了一個項目,其中的寶石不在包含空格的路徑中,但項目是。就我而言,它沒有任何問題。另請注意,gem install atomic成功。

+0

這聽起來像這個問題:http://bugs.ruby-lang.org/issues/show/3024雖然說它是固定在2.0.0。 –

+0

它可能類似。我的問題是Rails,這是一個單獨的應用程序。我不知道兩個開發組是密切關聯還是代碼在應用程序之間共享。 – curt

+0

這種問題應該有一個StackWTF版本。成千上萬的感謝@curt – sonxurxo

8

對於那些誰通過谷歌搜索到這個頁面,我解決了類似的問題,而在Mac上這種方式安裝原子(1.1.13):

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

這似乎是因爲衝突的Xcode的更新。

+1

感謝您的解決方案。調試並不容易。 – curt

+1

升級到小牛後,我不得不重新創建這個鏈接。我的舊simplink是/usr/bin/llvm-gcc-4.2,我不得不改變它,所以它指向/ usr/bin/llvm-gcc(注意缺少4.2後綴)。 –

0

如果你正在嘗試安裝原子(或軟件包更新 - 這是失敗的原子),在Mac/OSX - 你需要爲的XCode將要安裝或更新您的命令行工具的任何操作系統版本使用的是。

正如上面提到的,但我覺得這個問題的答案是有點深奧。原子需要這些工具進行多線程。

0

我得到了相同的錯誤消息,它似乎已經在我的Gemfile引起的(看似無害但錯誤)線。如果使用正確(在使用RVM的系統上),這兩行應該能夠使用正確版本的Ruby和所需的gemset。

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

我的印象是,我只是添加註釋與第二線 - 但是RVM(設計/如預期)創建了一個名爲「* railstut_rails_4_0一個新的寶石之下;紅寶石2.0.0- p247 @ railstut_rails_4_0 *「有空格和特殊字符。每次我運行軟件包安裝時 - 即使在Gemfile中更改了名稱後--RVM加載了當前錯誤的gemset。爲了解決,我做了以下事情:

  1. $ rvm use ruby​​-2.0。0-p247 @ railstut_rails_4_0
  2. 更新Gemfile:RVM設置的以下幾行中的前兩行;其次是供個人參考評論:

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

  3. 捆綁安裝--without生產

  4. 包更新
  5. 捆綁安裝
19

我有這個問題。原因是安裝Mac OS 10.9(Mavericks),因爲Mavericks有一個獨立於Xcode的獨立命令行工具。爲了解決這個問題,我刪除/應用/ Xcode中,然後通過安裝在獨立的命令行工具:

注:可能不需要第一行,見下文

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

然後評論點擊「安裝「從OSX彈出窗口

來源: http://www.computersnyou.com/2025/2013/06/install-command-line-tools-in-osx-10-9-mavericks-how-to/

+2

您可能必須同意新的許可協議。我用'sudo gcc -v'來保存我的版本4.2,然後促使我同意許可協議。 '寶石更新'後工作。 –

+0

@BlakeErickson當我經歷這些步驟時,我不認爲我必須簽署任何協議。也許我之前簽了它。 – webdevguy

+0

同上必須運行sudo gcc -v才能接受許可協議。卡住了幾個小時,你們救了我。謝謝。 – Agazoom

0

對於那些誰通過谷歌搜索到這裏:我遇到了與原子1.1.14類似的東西。

在我的情況下,它實際上是Avast(反病毒程序),它不會讓我執行原子特定的文件。

它通過從Avast中排除文件解決,然後再運行gem install atomic -v '1.1.14'

0

我使用的是Mac OS Lion,爲了解決這個問題我安裝了新的命令行工具。 步驟:打開XCode - >下載 - >安裝命令行工具。 就是這樣。

0

這100%與路徑中的空間有關。它吐出的錯誤顯示嘗試安裝路徑。惱人的錯誤。