如出现Error fetching https://gems.ruby-china.org/: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://gems.ruby-china.org/specs.4.8.gz)
意思很明显,就是SSL证书验证不了,Ruby自己没有SSL证书,所以https请求被服务器拒绝。 针对这种情况,有两种解决办法:
-
是不使用https协议来请求数据,用http协议来代替之,因为http协议不需要验证SSL证书,所以上面那个问题也就不存在了。
-
既然Ruby自己没有携带SSL证书,那我就自己下载一个证书添加给他不就好了,这样Ruby有了SSL证书,https协议也就不会被服务器拒绝了。
1.下载Ruby证书,这里是下载链接 链接: pan.baidu.com/s/1gfzAJKZ 密码: ithw
- 下载完成以后将证书放置在一个不经常改动的地方,我放置在c:\Program Files\Ruby22\lib下。之后在用户环境变量中新建一个变量,名字为SSL_CERT_FILE,值设置为证书的完整路径,例如我的路径需要设置为c:\Program Files\Ruby22\lib\ca-bundle.crt,完成以后将cmd窗口重启,之后再进行操作就成功了。
Tips:我在配置过程中遇到几个其他的问题,在这里一并提醒下后来者。
-
Ruby因为防火墙的原因,需要配置成国内的镜像,原本国内的镜像地址是https://ruby.taobao.org,现在已经改为了https://gems.ruby-china.org/,这个问题需要注意下。
-
如果你在安装sass过程中遇到了以下错误
ERROR: While executing gem (Errno::EACCES) Permission denied @ rb_sysopen...... 这是因为sass安装权限不够造成的,关掉当前cmd,然后重新以管理员身份运行cmd,再继续操作就好了。
最后把我看到的一篇讲解如何安装Ruby及其他环境的文章分享给大家。
也可以按照官网来安装sass:www.sass.hk/install/