Установка Ruby gem без использования `sudo` - PullRequest
0 голосов
/ 10 ноября 2018

Следующая установка Ruby gem без sudo использовалась для работы в тот день:

xcode-select --install
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
export PATH=/usr/local/bin:$PATH
launchctl setenv PATH “/usr/local/bin:$PATH”
brew install ruby
gem install jekyll

Но теперь на последнем шаге я получаю:

ОШИБКА: при выполнении gem ... (Gem :: FilePermissionError) У вас нет прав на запись в каталог /Library/Ruby/Gems/2.3.0.

Я пробовал это решение - https://gist.github.com/DirtyF/5d2bde5c682101b7b5d90708ad333bf3. И это вроде как сработало, но теперь мой $PATH испорчен echo $PATH возврат - /Users/username/.rbenv/shims:/Users/username/.rbenv/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin.

У меня полностью удалено rbenv и очищено .bash_profile. Теперь мой $ PATH выглядит так /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin, что возвращает меня к первому пункту:

ОШИБКА: при выполнении gem ... (Gem :: FilePermissionError) У вас нет прав на запись в каталог /Library/Ruby/Gems/2.3.0.

Кто-нибудь может поделиться правильным обновленным способом установки Ruby gem, не используя sudo и не испортив $PATH?

macOS 10.14.1

ruby -v
ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin18]

gem env    
RubyGems Environment:
      - RUBYGEMS VERSION: 2.5.2.3
      - RUBY VERSION: 2.3.7 (2018-03-28 patchlevel 456) [universal.x86_64-darwin18]
      - INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.3.0
      - USER INSTALLATION DIRECTORY: /Users/username/.gem/ruby/2.3.0
      - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
      - EXECUTABLE DIRECTORY: /usr/local/bin
      - SPEC CACHE DIRECTORY: /Users/username/.gem/specs
      - SYSTEM CONFIGURATION DIRECTORY: /Library/Ruby/Site
      - RUBYGEMS PLATFORMS:
        - ruby
        - universal-darwin-18
      - GEM PATHS:
         - /Library/Ruby/Gems/2.3.0
         - /Users/username/.gem/ruby/2.3.0
         - /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/gems/2.3.0
      - GEM CONFIGURATION:
         - :update_sources => true
         - :verbose => true
         - :backtrace => false
         - :bulk_threshold => 1000
      - REMOTE SOURCES:
         - https://rubygems.org/
      - SHELL PATH:
         - /usr/local/bin
         - /usr/bin
         - /bin
         - /usr/sbin
         - /sbin

Ответы [ 3 ]

0 голосов
/ 12 ноября 2018

Спасибо за полезную ссылку lacostenycoder . Мне удалось установить Ruby gems без sudo следующим образом:

xcode-select --install
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install rbenv
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
rbenv install 2.5.1
rbenv global 2.5.1
gem install jekyll
0 голосов
/ 17 декабря 2018

Что сработало для меня, после того, как те же проблемы и шаги, которые вы описали в своем ответе, не решили проблему, чтобы иметь возможность установить рубиновые гемы (в данном случае jekyll), это добавление две строки, упомянутые в руководстве по установке jekyll к моему файлу конфигурации оболочки с помощью терминала:

echo 'export GEM_HOME=$HOME/gems' >>~/.bash_profile
echo 'export PATH=$HOME/gems/bin:$PATH' >>~/.bash_profile

просто обязательно используйте два >> вместо одного, как упоминалось в этой теме .

Отказ от ответственности: это сработало для меня, но я новичок в использовании CLI, поэтому я понятия не имею, могут ли строки выше иметь какие-либо последствия для безопасности ...

0 голосов
/ 10 ноября 2018

Не устанавливайте ruby ​​с homebrew, если вы собираетесь использовать менеджер версий ruby, т.е. rbevn.

В этот момент я бы порекомендовал brew uninstall ruby

Затем используйте rbenv, если он у вас уже работает, для установки вашей версии ruby.

Но если вы запутались и не уверенычто вы делаете, вы можете рассмотреть возможность использования RVM вместо RBENV, поскольку установка / настройка проще.

Если это так, см. Как удалить rbenv в OSX?

Тогда посмотрите https://rvm.io/rvm/install

Глядя на свою суть echo "export PATH=$HOME/gems/bin:$PATH" >> ~/.bashrc

Возможно, вам придется отредактировать ~/.bashrc и удалить эту строку экспорта

Возможно, вы захотитечтобы закрыть и снова открыть свой терминал, прежде чем делать что-либо из вышеперечисленного.Все, что вносит изменения в ~/.bashrc, не вступит в силу, пока вы не перезапустите свой терминал

...