gem 代理设置相关的内容可以参考之前的文章:iMac(OS X)日常开发中各种代理设置方法汇总(shell、Android Studio、gem、npm)-子勰的博客,里面有关于如何设置gem的代理以及如何修改镜像的方法
在iMac下面如果使用gem安装部分软件的时候很容易遇到下面的错误:
➜ temp: sudo gem install --http-proxy http://proxy.com:8080 gollum
Password:
Building native extensions. This could take a while...
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /usr/bin directory.
%
原因就是字面意思的原因, gem 要往目录/usr/bin
写文件但是权限不够. 因为此时使用的是系统自带的 ruby, 他会在尝试往系统库中安装内容。有时候即使是使用sudo或许也不可以安装。解决这个问题有两种方法:
切换用户,使用root尝试或者修改 /Library/Ruby/Gems/XXX 的用户组
重新在别的目录再安装一套ruby
切换用户方法很简单,使用sudo chown -R
即可。不过个人更推荐在安装一个ruby。直接使用homebrew安装后修改环境变量即可。这样我们自定义的和系统的就可以很好的区分开。示例如下:
➜ blog git:(master) ✗ brew install ruby@2.6
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/ruby%402.6-2.6.6_1.catalina.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/b9618a3e2b84a8364e2a9db594c8def107996030155908d1d2f932c97720ef46?response-content-disposition=attach
######################################################################## 100.0%
==> Pouring ruby@2.6-2.6.6_1.catalina.bottle.tar.gz
==> Caveats
By default, binaries installed by gem will be placed into:
/usr/local/lib/ruby/gems/2.6.0/bin
You may want to add this to your PATH.
ruby@2.6 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.
If you need to have ruby@2.6 first in your PATH run:
echo 'export PATH="/usr/local/opt/ruby@2.6/bin:$PATH"' >> ~/.zshrc
For compilers to find ruby@2.6 you may need to set:
export LDFLAGS="-L/usr/local/opt/ruby@2.6/lib"
export CPPFLAGS="-I/usr/local/opt/ruby@2.6/include"
For pkg-config to find ruby@2.6 you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/ruby@2.6/lib/pkgconfig"
==> Summary
🍺 /usr/local/Cellar/ruby@2.6/2.6.6_1: 17,226 files, 29.6MB