Ruby RubyGems: Почему я всегда получаю сообщения об ошибках при попытке установить драгоценные камни?

Таким образом, я всегда, кажется, получаю сообщения об ошибках, когда я устанавливаю новые драгоценные камни. Я плохо знаком с Ruby, направляющими и RubyGems, таким образом, он делает это очень печальным. Я не уверен, должен ли я настроить что-то, или если я установил что-то неправильно... Так, надо надеяться, можно помочь. Вот некоторые примеры проблем, которые я имею:

1.: sudo по сравнению с не использованием sudo

В тоннах учебных руководств/документации они всегда используют:

gem install gem-name

Для меня это почти всегда приводит к своего рода ошибке..., пока я не делаю...

sudo gem install gem-name

... затем драгоценный камень обычно устанавливает прекрасный. Как получается, что люди могут работать gem install не начиная с sudo?

Решение:

Установите менеджера по версии Ruby!

Серьезно! Я желаю, чтобы я сделал бы это раньше. Менеджер по Версии Ruby позволяет выполнить несколько версий Ruby, каждого с их собственным набором драгоценных камней и переключателя между различными версиями беспрепятственно. Плюс, Вы не должны будете использовать sudo больше. Плюс, супер легко установить, таким образом, необходимо сделать это!


2.: "Не может найти заголовочные файлы"

Иногда я получаю сообщение как это, работая под sudo...

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h

Что это даже означает?

Решение:

Проблема состоит в том, что это не может найти сделать команду. Это установлено автоматически при установке XCode. И по некоторым причинам, даже при том, что мне установили XCode, он не мог найти его. Я загрузил последнюю версию XCode и переустановил. Теперь, когда я работаю which make это правильно возвращается /usr/bin/make.

Используя Льва с новой версией XCode, загрузите ‘Инструменты командной строки для XCode’ от https://developer.apple.com/downloads.


3.: "Небезопасный мировой перезаписываемый dir"

Вот новый.

/Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/source.rb:352: warning: Insecure world writable dir /usr/local/bin in PATH, mode 040777

Это не выглядит хорошим. Что я должен сделать для фиксации его?

Решение:

Что-то, что я установил, в какой-то момент вовремя, изменило полномочия на моем /usr/local/bin каталог (а также мой /usr/local и /usr/local/mysql каталоги). Возвращать их:

sudo chmod 755 /usr/local/bin

4.: не Может установить bcrypt-рубин

Наконец, я пытаюсь работать bundle install на моих совершенно новых направляющих 3.0.0.beta4 приложение и я получаем эту ошибку:

Installing bcrypt-ruby (2.1.2) from .gem files at /Users/andrew/.bundle/ruby/1.8/cache with native extensions /Library/Ruby/Site/1.8/rubygems/installer.rb:483:in `build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h


Gem files will remain installed in /Users/andrew/.bundle/ruby/1.8/gems/bcrypt-ruby-2.1.2 for inspection.
Results logged to /Users/andrew/.bundle/ruby/1.8/gems/bcrypt-ruby-2.1.2/ext/mri/gem_make.out
    from /Library/Ruby/Site/1.8/rubygems/installer.rb:446:in `each'
    from /Library/Ruby/Site/1.8/rubygems/installer.rb:446:in `build_extensions'
    from /Library/Ruby/Site/1.8/rubygems/installer.rb:198:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/source.rb:170:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/installer.rb:34:in `run'
    from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/spec_set.rb:12:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/spec_set.rb:12:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/installer.rb:21:in `run'
    from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/installer.rb:6:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/cli.rb:91:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/vendor/thor/task.rb:33:in `send'
    from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/vendor/thor/task.rb:33:in `run'
    from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/vendor/thor/invocation.rb:109:in `invoke'
    from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/vendor/thor/invocation.rb:116:in `call'
    from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/vendor/thor/invocation.rb:116:in `invoke'
    from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/vendor/thor.rb:137:in `start'
    from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/vendor/thor/base.rb:378:in `start'
    from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/vendor/thor.rb:124:in `start'
    from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/bin/bundle:13
    from /usr/bin/bundle:19:in `load'
    from /usr/bin/bundle:19

Это похоже bcrypt-ruby своего рода зависимость, которую это пытается установить. Таким образом, как я заставляю это работать? Как я могу знать причину, которую это приводит к сбою?

Решение:

Это было зафиксировано путем переустановки XCode.


Извините за подробный перечень, но я действительно хочу избавиться от всех этих проблем!

Заранее спасибо!

5
задан 13.03.2012, 13:57

2 ответа

Это было бы лучше как отдельные вопросы, как я могу только ответить на некоторых.

  1. sudo - На OS X драгоценные камни установлены в каталоге под /Library. Что-либо здесь совместно используется всеми пользователями на Mac, и так смочь записать в него Вы должны базироваться доступ, который является тем, что sudo дает Вам.
    Вы видите команды без sudo, когда или люди объясняют вещи быстро, поскольку они ожидают, что люди будут знать, когда использовать sudo или если у них есть рубин установки для установки в пользовательском каталоге согласно документации Ruby

  2. и 4.: Не Может найти заголовочные файлы для рубина.
    Я подозреваю, что Вы не установили XCode, инструменты разработчика Apple. Они находятся на Вашем DVD OS X или могут быть загружены с Apple или App Store, если Вы используете OS X Lion.

  3. /usr/local/bin - это плохо.
    Выполненный /Applications/Utilities/Disk Utility.app, выберите загрузочный диск и восстановите полномочия.

2
ответ дан 07.12.2019, 17:50

Я предлагаю установить Кормушку Версии Ruby, и Вы не должны волноваться о проблемах sudo и можете переключиться легко между различными рубиновыми версиями и наборами драгоценного камня.

2
ответ дан 07.12.2019, 17:50

Теги

Похожие вопросы