Я не могу установить и запустить fakes3
gem на бета-версии El Capitan 5.
Я пробовал:
sudo gem install fakes3
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/fakes3
Затем я попытался сделать это способом cocoapods. Он работал на cocoapods, но не на подделки.
mkdir -p $HOME/Software/ruby
export GEM_HOME=$HOME/Software/ruby
gem install cocoapods
[...]
1 gem installed
gem install fakes3
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
Ответ 1
Отказ от ответственности: @theTinMan и другие разработчики Ruby часто указывают на то, чтобы не использовать sudo
при установке драгоценных камней и указывать на такие вещи, как RVM. Это абсолютно верно при разработке Ruby. Идем дальше и используем это.
Однако многие из нас просто хотят, чтобы некоторые бинарные файлы были распределены как драгоценный камень (например, fakes3
, cocoapods
, xcpretty
...). Я определенно не хочу беспокоиться об управлении отдельным рубином. Вот ваши быстрые варианты:
Вариант 1: продолжайте использовать sudo
Использование sudo
, вероятно, отлично, если вы хотите, чтобы эти инструменты были установлены глобально.
Проблема заключается в том, что эти двоичные файлы установлены в /usr/bin
, что является off-limits с El Capitan. Однако вы можете установить их в /usr/local/bin
. То, что Homebrew установит его, поэтому возможно уже существует.
sudo gem install fakes3 -n/usr/local/bin
Gems будет установлен в /usr/local/bin
, и каждый пользователь вашей системы сможет их использовать, если он находится в PATH.
Вариант 2: установите в свой домашний каталог (без sudo)
Ниже будут установлены драгоценные камни в ~/.gem
и поместите двоичные файлы в ~/bin
(которые вы должны добавить в свой PATH
).
gem install fakes3 --user-install -n~/bin
Сделайте это по умолчанию
В любом случае вы можете добавить эти параметры в свой ~/.gemrc
, чтобы не помнить их:
gem: -n/usr/local/bin
то есть. echo "gem: -n/usr/local/bin" >> ~/.gemrc
или
gem: --user-install -n~/bin
то есть. echo "gem: --user-install -n~/bin" >> ~/.gemrc
(Совет. Вы также можете ввести --no-document
, чтобы пропустить создание документации разработчика Ruby.)
Ответ 2
В моем случае мне пришлось переустановить Ruby с помощью Brew. Это, похоже, решило проблему, поскольку я могу снова установить драгоценные камни.
brew install ruby
После этого вам нужно выйти и войти в систему, либо графически, либо просто перезапустить терминал.
Ответ 3
Это из-за новой функции безопасности OS X "El Capitan".
Попробуйте добавить --user-install
вместо использования sudo:
$ gem install *** --user-install
Например, если вы хотите установить fake3, просто используйте:
$ gem install fake3 --user-install
Ответ 4
sudo gem install -n /usr/local/bin cocoapods
Попробуйте это. Это будет определенно работать.
Ответ 5
Вам нужно обновить Xcode до новейшего (v7.0.1), и все будет работать нормально.
Если после установки новейшего Xcode и все еще не работает, попробуйте установить gem таким образом:
sudo gem install -n /usr/local/bin GEM_NAME_HERE
Например:
sudo gem install -n /usr/local/bin fakes3
sudo gem install -n /usr/local/bin compass
sudo gem install -n /usr/local/bin susy
Ответ 6
Похоже, при обновлении до OS X El Capitain каталог /usr/local изменяется несколькими способами:
- Пользовательские разрешения reset (это также проблема для людей, использующих Homebrew).
- бинарные и символические ссылки могут быть удалены или изменены
[Edit] Также есть предварительная вещь: обновить Xcode...
Решение для # 1:
$ sudo chown -R $(whoami):admin /usr/local
Это приведет к исправлению разрешений в каталоге /usr/local
, который затем поможет командам gem install
и brew install|link|...
работать правильно.
Решение для # 2:
Проблемы на основе Ruby
Убедитесь, что вы установили разрешения каталога /usr/local
(см. # 1 выше)
Сначала попробуйте переустановить свой камень, используя:
sudo gem install <gemname>
Обратите внимание, что он установит последнюю версию указанного драгоценного камня.
Если вы не хотите сталкиваться с проблемами обратной совместимости, я предлагаю вам сначала определить, какую версию этого жемчужина вы хотите получить, а затем переустановить с помощью -v version
. См. Пример ниже, чтобы убедиться, что система не получит новую версию capistrano.
$ gem list | grep capistrano
capistrano (3.4.0, 3.2.1, 2.14.2)
$ sudo gem install capistrano -v 3.4.0
Brew
Обновить brew и обновить формулы
$ brew update
$ brew upgrade
Вам также может потребоваться повторно связать некоторые из них вручную
$ brew link <formula>
Ответ 7
Как уже было сказано, проблема связана с функцией безопасности Mac OSX с "El Capitan".
Используя стандартную систему Ruby, процесс установки происходит в каталоге /Library/Ruby/Gems/2.0.0
, который недоступен для пользователя и дает ошибку.
Вы можете взглянуть на параметры среды Ruby с помощью команды
$ gem env
Существует УСТАНОВКА И СПРАВОЧНИК УСТАНОВКИ ПОЛЬЗОВАТЕЛЯ. Чтобы использовать каталог установки пользователя вместо установочного каталога по умолчанию, вы можете использовать параметр --user-install
вместо этого, используя sudo
, который никогда не рекомендуется.
$ gem install myGemName --user-install
В процессе не должно быть никаких прав. Затем камни устанавливаются в каталоге пользователя: ~/.gem/Ruby/2.0.0/bin
Но чтобы установить установленные драгоценные камни, этот каталог должен быть доступен на вашем пути. Согласно Rubys faq, вы можете добавить следующую строку в ~/.bash_profile
или ~/.bashrc
if which ruby >/dev/null && which gem >/dev/null; then
PATH="$(ruby -rubygems -e 'puts Gem.user_dir')/bin:$PATH"
fi
Затем закройте и перезагрузите терминал или перезагрузите .bash_profile
или .bashrc
(. ~/.bash_profile
)
Ответ 8
Это решение, которое я использовал:
Примечание: это исправление для компаса, поскольку я написал его по другому вопросу SO, но я использовал тот же процесс для восстановления функциональности для всех терминальных процессов, очевидно, что устанавливаемые вами камни разные, но процесс тот же.
У меня была такая же проблема. Это связано с тем, что Apple внедряет System Integrity Protection (SIP). Вы должны сначала отключить это...
Перезагрузка в режиме восстановления:
Перезагрузите и удерживайте Command + R, пока не увидите логотип Apple.
После загрузки выберите Утилиты > Терминал из верхней панели.
type: csrutil disable
затем введите: reboot
После перезагрузки
Откройте терминал и введите команды:
sudo gem uninstall bundler
sudo gem install bundler
sudo gem install compass
sudo gem install sass
sudo gem update --system
Отдельные драгоценные камни, которые не удались, должны быть исправлены, поэтому для каждого выполните следующие действия:
На моей машине это была первая зависимость, не работающая, поэтому я перечислил ее:
sudo gem pristine ffi --version 1.9.3
Перейдите к списку драгоценных камней, которые необходимо отремонтировать. Во всем, что вы смотрите на 10 минут, чтобы исправить это, но у вас будут команды терминала для работы компаса.
Снимок экрана
Ответ 9
Переустановка RVM работала для меня, но мне пришлось переустановить все мои драгоценные камни позже:
rvm implode
\curl -sSL https://get.rvm.io | bash -s stable --ruby
rvm reload
Ответ 10
Если камень, который вы пытаетесь установить, требует библиотеки xml, а затем попробуйте следующее:
sudo gem install -n /usr/local/bin <gem_name> -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib/
В частности, я столкнулся с проблемой при установке nokogiri gem v 1.6.8 на OS X El Capitan
и это, наконец, помогло мне:
sudo gem install -n /usr/local/bin nokogiri -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib/
Чтобы установить libxml2 и libxslt, вы можете сделать:
brew install libxml2 libxslt
brew install libiconv
а затем убедитесь, что у вас установлены инструменты командной строки xcode:
xcode-select --install
должна вернуть эту ошибку:
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
Ответ 11
Мне не нравится устанавливать вещи с sudo.
как только вы начинаете с sudo, вы не можете остановиться.
попробуйте предоставить разрешения для каталога Gems.
sudo chown -R $(whoami) /Library/Ruby/Gems/2.0.0
Ответ 12
sudo chown -R $(whoami):admin /usr/local
Это даст разрешения (Homebrew устанавливает там рубин)
Ответ 13
Я столкнулся с той же проблемой после установки El Capitan, я попытался установить sass и compass в проект symfony, следующая команда вернула следующую ошибку:
$sudo gem install compass
ОШИБКА: Ошибка установки компаса: ОШИБКА: Не удалось создать собственное расширение gem.
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb
проверка ffi.h.../System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/mkmf.rb:434:in `try_do ': не удалось выполнить компилятор для создания исполняемого файла. (RuntimeError)
Итак, я тогда попытался установить sass с:
$ sudo gem install sass
Появилось одно и то же сообщение об ошибке, после некоторых поисковых запросов мне удалось установить sass, используя следующую команду:
$sudo gem install -n/usr/local/bin sass
Выше работала для меня с установкой sass, но не работала для установки компаса. Я читал, что кто-то где-то открыл экземпляр xcode, затем снова закрыл его, а затем успешно выполнил ту же команду, после которой работал для них.
Я попытался открыть xcode, но мне было предложено сообщение о том, что установленная версия xcode несовместима с El Capitan.
Поэтому я затем обновил xcode из магазина приложений, перезапустил следующую команду, которая на этот раз успешно работала:
$sudo gem install -n/usr/local/bin compass
Тогда мне удалось запустить $compass init
Теперь у меня есть все мои драгоценные камни, и я могу приступить к созданию прекрасных вещей:)
Ответ 14
Мне пришлось rm -rf ./vendor
снова запустить bundle install
.