Ошибка при установке Atomic

Я пытаюсь установить драгоценные камни в свой новый проект Ruby, используя пакетную установку. Я установил версию Ruby с помощью rbenv на своем компьютере с OS X 10.8.4. Я получаю следующую ошибку:

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, как и просили. Затем я попробовал еще раз и получил ту же ошибку. Я видел несколько ошибок при установке atomic, но ни одной подобной этой. Кажется, проблема с параметром -R. Поскольку я не вводил его изначально, я не знаю, где его изменить.

Обновить

Я начал с rbenv, установленного на версию 2.0.0-p0, и запустил rails new jazz catalog -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.

РЕШЕНО Вздох - не обрабатывает пробелы в пути


person curt    schedule 17.08.2013    source источник


Ответы (8)


У меня была такая проблема. Оказалось, что это было вызвано установкой Mac OS 10.9 (Mavericks), поскольку у Mavericks есть новые автономные инструменты командной строки, отдельные от Xcode. Чтобы решить эту проблему, я удалил / Applications / 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/

person webdevguy    schedule 28.10.2013
comment
Возможно, вам придется согласиться с новым лицензионным соглашением. Я случайно sudo gcc -v, чтобы убедиться, что у меня установлена ​​версия 4.2, затем мне было предложено согласиться с лицензионным соглашением. После этого сработало «обновление драгоценного камня». - person Blake Erickson; 08.11.2013
comment
@BlakeErickson Я не думаю, что мне нужно было подписывать какое-либо соглашение, когда я выполнял эти шаги. Возможно, я подписал его раньше. - person webdevguy; 09.11.2013
comment
То же самое с необходимостью запустить sudo gcc -v, чтобы принять лицензионное соглашение. Я застрял на пару часов, и вы, ребята, спасли меня. Спасибо. - person Agazoom; 23.11.2013
comment
На самом деле мне не пришлось удалять Xcode, чтобы он заработал. Второй команды было достаточно. Я не понимаю, что нужно удалять Xcode ... Достаточно установить инструменты командной строки. - person PofMagicfingers; 24.11.2013
comment
Просто запуск второй строки тоже работал у меня. Как ни странно, --install даже не указан как опция при запуске xcode-select --help. - person Andy Waite; 03.12.2013

Для тех, кто попадает на эту страницу с помощью поиска в Google, я решил аналогичную проблему при установке atomic (1.1.13) на Mac следующим образом:

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

Похоже, это из-за конфликтующих обновлений Xcode.

person Reza Hashemi    schedule 20.08.2013
comment
Спасибо за ваше решение. Отладить эту проблему непросто. - person curt; 21.08.2013
comment
Мне пришлось воссоздать эту ссылку после обновления до Mavericks. Моя старая упрощенная ссылка была на /usr/bin/llvm-gcc-4.2, и мне пришлось изменить ее так, чтобы она указывала на / usr / bin / llvm-gcc (обратите внимание на отсутствие постфикса 4.2). - person Travis Castillo; 18.03.2014

Сообщения об ошибках не дают ни малейшего представления о реальной проблеме. Bundler или вызываемый им компонент неправильно обрабатывает имена каталогов с пробелами в них. В моем случае проблема была вызвана ... / Data RAID / ... Как только я переместил проект на другой диск, где на пути не было бы пробелов, все заработало. Похоже, проблема может заключаться только в местонахождении драгоценных камней. В более ранней попытке я создал проект, в котором драгоценные камни не были расположены на пути, содержащем пробелы, но проект был. Насколько я понял, у него не было никаких проблем. Также обратите внимание, что атомная установка драгоценного камня прошла успешно.

person curt    schedule 18.08.2013
comment
Это похоже на следующую проблему: bugs.ruby-lang.org/issues/show/3024 хотя там сказано, что это исправлено в версии 2.0.0. - person Tim Moore; 23.08.2013
comment
Наверное, похоже. Моя проблема связана с Rails, это отдельное приложение. Я не знаю, тесно связаны ли эти две группы разработчиков или используется ли код между приложениями. - person curt; 23.08.2013
comment
Для такого рода проблем должна быть версия StackWTF. Тысячи спасибо @curt - person sonxurxo; 25.03.2014

Если вы пытаетесь установить Atomic (или обновление пакета - и это не удается на atomic), на Mac / OSX - вам нужно будет установить или обновить инструменты командной строки для XCode для любой версии ОС, которую вы используете.

Как упоминалось выше, но мне кажется, что этот ответ немного эзотеричен. Эти инструменты нужны Atomic для многопоточности.

person etusm    schedule 28.08.2013

Я получал такое же сообщение об ошибке, и, похоже, оно было вызвано (на вид безобидной, но ошибочной) строкой в моем Gemfile. При правильном использовании (в системе, использующей RVM) эти две строки должны иметь возможность использовать правильную версию Ruby и желаемый гемсет.

ruby '2.0.0'
#ruby-gemset=railstut_rails_4_0 ; ruby-2.0.0-p247@railstut_rails_4_0

У меня создалось впечатление, что я просто добавляю комментарий ко второй строке, однако RVM (по замыслу / как и ожидалось) создал новый гемсет с именем «* railstut_rails_4_0; ruby-2.0.0-p247@railstut_rails_4_0*», который имел пробелы и специальные символы. Каждый раз, когда я запускал установку пакета - даже после того, как я изменил имя внутри Gemfile - RVM загружал текущий ошибочный гемсет. Для решения я сделал следующее:

  1. $ rvm используйте ruby-2.0.0-p247@railstut_rails_4_0
  2. # P3 #
    # P4 #
  3. установка пакета - без производства

  4. пакетное обновление
  5. установка пакета
person sojourner    schedule 11.09.2013

Для тех, кто попал сюда через гугл: я столкнулся с чем-то похожим с atomic 1.1.14.

В моем случае это был Avast (антивирусная программа), которая не позволяла мне запускать файл, специфичный для атома.

Решилась путем исключения файла из Avast и повторного запуска gem install atomic -v '1.1.14'.

person user3004383    schedule 18.11.2013

Я использую Mac OS Lion, и для решения этой проблемы я установил новые инструменты командной строки. Шаги: Откройте XCode -> Загрузки -> Установить инструменты командной строки. Только это.

person fabiopimentel    schedule 23.12.2013

Это 100% связано с пробелами на пути. Выдаваемая ошибка показывает путь попытки установки. Досадная ошибка.

person Taylor Halliday    schedule 25.01.2014