以下不带sudo
的Ruby gem安装曾经可以正常工作:
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
。
我有fully removed 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
答案 0 :(得分:1)
在遇到相同的问题以及您在答案中描述的步骤后,对我有用的方法无法解决问题,为了能够安装红宝石宝石(在本例中为jekyll),请附加{{3 }}使用终端进入我的shell配置文件:
echo 'export GEM_HOME=$HOME/gems' >>~/.bash_profile
echo 'export PATH=$HOME/gems/bin:$PATH' >>~/.bash_profile
请务必使用两个>>
而不是一个two lines mentioned in the jekyll installation guide。
免责声明:这对我有用,但是我对使用CLI还是陌生的,所以我不知道上面的几行是否可能对安全性有任何影响……
答案 1 :(得分:0)
如果要使用ruby版本管理器(即rbevn),请不要在自制软件中安装ruby。
这时我会推荐brew uninstall ruby
如果已经可以使用rbenv安装红宝石版本,则使用它。
但是,如果您感到困惑并且不确定自己在做什么,您可能想考虑使用RVM而不是RBENV,因为安装/设置更加容易。
如果是,请参见How do you uninstall rbenv on OSX?
然后参见https://rvm.io/rvm/install
看你的要点
echo "export PATH=$HOME/gems/bin:$PATH" >> ~/.bashrc
您可能需要编辑~/.bashrc
并删除该导出行
执行上述任何操作之前,您可能需要关闭并重新打开终端。在重启终端之前,对~/.bashrc
进行任何更改的操作都不会生效
答案 2 :(得分:0)
感谢有用的link lacostenycoder。我设法通过以下方式安装了没有sudo
的Ruby gem:
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
答案 3 :(得分:0)
在 Mac 上安全安装任何 Ruby gem 的关键是配置正确的 Ruby 环境。使用 Homebrew 安装 Ruby 是一种方法,尽管使用 Ruby 管理器更好。正如其他人所提到的,您还必须确保 PATH
设置正确,并重新启动终端(或打开一个新选项卡,或 source
shell 文件)以查看 shell 中的更改文件生效。
概括地说,在 Mac 上设置工作的 Ruby 开发环境包括六个步骤:
~/.bash_profile
或 ~/.zshrc
)添加适当的行来配置 Ruby 管理器 - 每个管理器都会有执行此操作的说明,这是人们遗漏的典型步骤立>
我的个人偏好是 chruby 和 ruby-install。有关更多详细信息和可以自动化整个过程的脚本,请在此处查看我的答案: https://stackoverflow.com/a/54873916/928191