У вас нет прав на запись для каталога /Library/Ruby/Gems/2.3.0. (пользователь Mac)

ниже то, что мне нужно сделать.

Чтобы запустить спецификации, вам нужно установить RSpec. Сначала запустите gem install bundler в корневом каталоге вашего проекта. Затем запустите комплект установки. Чтобы запустить один файл спецификации, выполните команду, подобную этой: bundle exec rspec spec/00_hello_spec.rb. Чтобы запустить все спецификации одновременно, запустите bundle exec rspec.

Итак, я набрал gem install bundler до терминала, и получил   У вас нет прав на запись в каталог /Library/Ruby/Gems/2.3.0.

и это было в файле проекта в атоме * источник "https://rubygems.org" gem "rspec", "~> 3.2.0" *

Мой вопрос:

Похоже, что терминал дает мне ответ, потому что я не должен ничего менять на ruby, и мне нужно связать инсталляцию внутри атома? Может кто-нибудь сказать мне, как использовать atom или запустить что-нибудь в атоме?

Спасибо вам большое!

Ответ 1

Вы правы, что macOS не позволит вам что-либо изменить с помощью версии Ruby, которая устанавливается вместе с вашим Mac. Тем не менее, можно установить драгоценные камни, такие как bundler, используя отдельную версию Ruby, которая не мешает предоставленной Apple.

Использование sudo для установки гемов или изменение прав доступа к системным файлам и каталогам настоятельно не рекомендуется, даже если вы знаете, что делаете. Можем ли мы прекратить давать этот плохой совет?

Решение состоит из двух основных этапов:

  1. Установите отдельную версию Ruby, которая не мешает той, которая поставляется с вашим Mac.
  2. Обновите ваш PATH так, чтобы местоположение новой версии Ruby было первым в PATH. Список каталогов и порядок их поиска в компьютере для поиска исполняемых программ называется PATH. Если вы введете echo $PATH в Терминале, вы увидите список каталогов, разделенных двоеточием.

Есть несколько способов установить Ruby на Mac. Лучший способ, который я рекомендую и который я бы хотел использовать в различных инструкциях по установке, - это использовать автоматический скрипт, который настроит для вас подходящую среду Ruby. Это значительно снижает вероятность возникновения ошибки из-за неадекватных инструкций, которые заставляют пользователя делать кучу вещей вручную и оставляют за ним возможность выяснить все необходимые шаги.

Другой способ, которым вы можете воспользоваться, - это потратить дополнительное время, делая все вручную и надеясь на лучшее. Во-первых, вам нужно установить Homebrew, что упрощает установку других инструментов и приложений macOS.

Затем 4 самых популярных способа установки отдельной версии Ruby:

Если вам не нужно более одной версии Ruby одновременно (кроме той, которая поставляется с macOS)

  • Homebrew - после установки установите ruby с помощью brew install ruby, затем обновите PATH, запустив echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.bash_profile, а затем source ~/.bash_profile

Если вам нужна гибкость простого переключения между многими версиями Ruby

  • chruby и ruby-install - мои персональные рекомендации и рекомендации, автоматически устанавливаемые вышеупомянутым скриптом. Их можно установить вместе с Homebrew.

  • rbenv - можно установить вместе с Homebrew

  • РВМ

Чтобы убедиться, что вы используете несистемную версию Ruby, вы можете выполнить следующие команды:

which ruby

Это должно быть что-то кроме /usr/bin/ruby

ruby -v

Это должно быть что-то отличное от 2.3.7. На сегодняшний день 2.6.1 является последней версией Ruby.

После установки новой версии Ruby вы можете установить пакет:

gem install bundler

Ответ 2

Обычно рекомендуется использовать диспетчер версий, например, rbenv или rvm. В противном случае установленные Gems будут доступны как root для других пользователей.

Если вы знаете, что делаете, вы можете использовать sudo gem install.

Ответ 3

Если вы не хотите запускать sudo, установите ruby, используя homebrew

brew install ruby
export GEM_HOME="$HOME/.gem"
gem install rails

Вы можете добавить export GEM_HOME="$HOME/.gem" в ~/.bash_profile или .zshrc, если вы используете zsh

Ответ 4

Я столкнулся с той же проблемой после установки macOS Catalina. Я должен был попробовать команду ниже и она работает.

sudo gem update

Ответ 5

Решение для Mac

  1. Установите/обновите RVM с последней версией ruby

    \curl -sSL https://get.rvm.io | bash -s stable --rails

  2. Установить упаковщик

    gem install bundler


после этого две команды (sudo) gem install .... начали работать

Ответ 6

Запустите это

$ rbenv init
# Load rbenv automatically by appending
# the following to ~/.zshrc:

eval "$(rbenv init -)"

Следуйте инструкциям (в моем случае добавьте в ~/.zshrc);)


Также важно: изменения вступают в силу только после перезагрузки консоли. Два варианта

  • Введите source <modified file>
  • закрыть и снова открыть