题记:前不久在windows下配置jekyll环境时,需要用到gem,一个ruby的管理包,类似于管理nodejs包的npm。安装ruby环境后,使用gem安装包时请求国外的[https://rubygems.org/]镜像一直连不上或间歇性连接失败,之后换成淘宝的RubyGems镜像后,啪啦啪啦地就完事了...

Section One

上面说到,使用gem请求rubygems.org资源时会遇到长时间无法响应的问题,解决办法就是使用淘宝的RubyGems镜像,它是一个完整rubygems.org镜像,并且每隔大概10分钟会同步一次官方的镜像,保证同步成功和服务。镜像地址请访问:RubyGems,里面有使用的步骤。

jekyll安装

网上的教程大多比较旧或是不太完善,出现了问题又没有相关解决方案,下面来说说我的安装步骤:

window下安装

1.从rubyinstaller地址下载RubyInstaller和DevKit,注意它们对应的版本,如下图所示:

2.安装Ruby,推荐安装在系统盘,添加到用户环境变量,如下图所示:

3.解压DevKit包到系统盘C:\DevKit,打开命令行,进入该目录,然后执行以下命令:

$ ruby dk.rb init
$ ruby dk.rb install

4.修改下载镜像,删除rubygems.org源,添加淘宝RubyGems镜像,查看source和更新source cache:

$ gem sources --remove https://rubygems.org/
$ gem sources -a http://ruby.taobao.org/
$ gem sources -l
$ gem sources -u

5.安装jekyll包:

$ gem install jekyll

6.安装Python并配置用户环境变量和scripts下的easy_install Path,推荐下载Python2.7版本,如下图所示:

7.安装pygments语法高亮包,不要安装到最新版:

$ gem install pygments.rb --version "=0.5.0"

7.如果你不想使用jekyll原生pygments语法高亮,你可以安装rouge包,推荐使用pygments,生成jekyll项目后的_config.yml配置文件加入highlighter: pygments,旧版本是pygments: true

$ gem install rouge

8.安装解析markdown的包:

$ gem install rdiscount

9.安装wdm(Windows Directory Monitor):

$ gem install wdm

10.查看已安装的gem:

$ gem list

11.卸载gem包: $ gem uninstall gem-name

我的gem包安装目录:C:\Ruby193\lib\ruby\gems\1.9.1\gems,在这个目录下,你可以看到通过上面命令安装的一些包,一些是jekyll的依赖包。另外可能出现的错误:C:/Ruby193/lib/ruby/gems/1.9.1/gems/posix-spawn-0.3.9/lib/posix/spawn.rb:164: warning: cannot close fd before spawn 'which' 不是内部或外部命令,也不是可运行的程序或批处理文件。解决办法(安装pygments前注意版本,安装后再重装会导致依赖包出错): $ gem install pygments.rb --version "=0.5.0" gem uninstall pygments.rb --version "=0.5.2"

ubuntu下安装

ubuntu下安装就简单多了,不用考虑很多啥Python,C++,Ruby等的安装配置问题,执行以下命令即可:

$ sudo apt-get install ruby
$ sudo apt-get install rubygems
$ sudo gem install jekyll
$ sudo gem install rdiscount

Section Two

同理,在使用npm管理一些包时,也会发生一些长时间无法获取源的情况。如果使用淘宝的镜像cnpmjs.org,速度马上提升n倍,模块同步频率大概也是10分钟一次,以保证尽量与官方npmjs.org镜像同步。使用起来也非常方便,并且通过alias方式安装后也可以使用原来的npm方式管理包,使用教程地址:cnpm,利用cnpm也可以搭建个人私有仓库。

Last

很喜欢用markdown写博客,像写代码一样,附上jekyll的教程:jekyll,淘宝的镜像服务真的挺好的,技术也很牛逼,文笔比较差,不知道说什么了,不知不觉夜深了,该睡觉了,=_=~

念念不忘,必有回响!

淘宝RubyGems和NPM镜像的使用的更多相关文章

  1. CentOS安装node.js-8.11.1+替换淘宝NPM镜像

    注:以下所有操作均在CentOS 6.8 x86_64位系统下完成. #准备工作# 由于node.js-8.11.1在源码编译安装的时候需要gcc 4.9.4或clang++ 3.4.2以上版本的支持 ...

  2. npm更换成淘宝镜像源以及cnpm

    1.需求由来 由于node安装插件是从国外服务器下载,受网络影响大,速度慢且可能出现异常.所以如果npm的服务器在中国就好了,所以我们乐于分享的淘宝团队(阿里巴巴旗下业务阿里云)干了这事.来自官网:“ ...

  3. npm 淘宝镜像与官方源 切换

    1.临时使用 npm --registry https://registry.npm.taobao.org install 包名 2.永久设置为淘宝镜像 npm config set registry ...

  4. npm i node-sass 报错&npm 镜像切换

    npm install --save node-sass --registry=https://registry.npm.taobao.org --disturl=https://npm.taobao ...

  5. 摆脱npm的网络问题: 淘宝npm镜像

    在使用npm install的时候, 经常会因为网络问题, 各种安装不顺利, 一个字'烦躁'. 自从遇上淘宝npm之后,执行cnpm install之后, 怎一个'快'字了得. 闲话不多说, 直接上干 ...

  6. npm淘宝镜像

    前端开发会用到npm的包,但是国外的速度有时候很慢,幸运的是,淘宝做了镜像,一起来看看吧. https://npm.taobao.org/

  7. npm 国内淘宝镜像cnpm

    某些插件很奇怪,需要用国内的镜像下载才可以 #安装淘宝镜像npm install cnpm -g --registry=https://registry.npm.taobao.org #使用淘宝镜像下 ...

  8. 淘宝的ruby镜像已无人维护,使用ruby-china的RubyGems镜像

    淘宝的镜像已经无人维护了,参考 https://ruby-china.org/topics/29250 https://gems.ruby-china.org/ 使用新的镜像 $ gem source ...

  9. 修改npm包管理器的registry为淘宝镜像(npm.taobao.org)

    起因 安装了node,安装了npm之后,官方的源实在是 太慢了! 看了看淘宝的npm镜像, http://npm.taobao.org/  竟然说让我再下载一个cnpm,要不然就每次都得install ...

随机推荐

  1. 访问oracle数据库

    如果是本地 :sqlplus system/xxx(用户名/密码) 远程到服务器, sqlplus system/xxx(用户名/密码) @IP:port/orcl(orcl为数据库实例)

  2. iOS-GCD使用详解

    前言 对初学者来说,GCD似乎是一道迈不过去的坎,很多人在同步.异步.串行.并行和死锁这几个名词的漩涡中渐渐放弃治疗.本文将使用图文表并茂的方式给大家形象地解释其中的原理和规律. 线程.任务和队列的概 ...

  3. 对UIImageView+WebCache的封装

    UIImageView+SDWebImage.h #import <UIKit/UIKit.h> typedef void(^DownloadImageSuccessBlock)(UIIm ...

  4. 【HDOJ 1272】小希的迷宫(并查集+无环图)

    描述 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道 ...

  5. vue $set修改数组

    看了别人写的,自己简单写一下自己的理解. 因为 JavaScript 的限制,Vue.js 不能检测到下面数组变化,所以,想要正常是不能通过操作数组来渲染dom的,解决的方法是通过set方法, 在组件 ...

  6. 让UltraEdit-32成为Delphi 7编译器的工具设置

    UltraEdit-32编译Delphi的工具设置 {================================================}Dcc32 命令行(&C):C:\Pro ...

  7. while else

    count = 0 while count <= 5 : count += 1 if count == 3:pass print("Loop",count) else: pr ...

  8. Python学习笔记:第2天while循环 运算符 格式化输出 编码

    目录 1. while循环 continue.break和else语句 2. 格式化输出 3. 运算符 3.1 算数运算 3.2 比较运算符 3.3 赋值运算符 3.4 逻辑运算符 3.5 成员运算符 ...

  9. android 界面切换教程

    Android的界面切换其实并没有什么难度,就和java的界面切换一样简单,但是java的使用的是Swing框架进行的切换,而Android使用的是Intent 来切换框架的,这是一个全新的使用方法, ...

  10. 10---git安装

    卸载原来的版本: # 查看版本 git --version # 移除原来的版本 yum remove git 安装依赖库: yum install curl-devel expat-devel get ...