当前位置: 首页 > news >正文

在Mac OS X上安装 Ruby运行环境

写于2016年9月,配置环境用于iOS开发。

先放一些相关介绍(后面的代码用于在终端中查看版本信息):
(1) LLVM(总)和Clang(编译器前端)是苹果的编译环境,支持C、C++、Objective-C、Swift。 cc -v
(2) rvm:ruby的版本管理器。 rvm -v
(3) ruby:脚本语言。 ruby -v
(4) gem:基于ruby开发的工具包。gem -v
(5) cocoapods:用ruby实现,需要ruby环境。以ruby gem包的形式被安装。 pod --version


正题:

对于新入门的开发者,如何安装 Ruby 和 Ruby Gems 的运行环境可能会是个问题,本页主要介绍如何用一条靠谱的路子快速安装 Ruby 开发环境。
此安装方法同样适用于产品环境!

系统需求

首先确定操作系统环境,不建议在 Windows 上面搞,所以你需要用:
Mac OS X
任意 Linux 发行版本(Ubuntu,CentOS, Redhat, ArchLinux …)

注:以下代码区域,带有 $ 打头的表示需要在控制台(终端)下面执行(不包括 $ 符号),下一行为结果,不需码入。

步骤0 - 安装系统需要的包

For Mac
先安装 Xcode 开发工具,它将帮你安装好 Unix 环境需要的开发包

步骤1 - 安装 RVM

Ruby Version Manager 简称RVM,是一款非常好用的ruby版本管理以及安装工具。

$ curl -L https://get.rvm.io | bash -s stable

期间可能会问你sudo管理员密码,以及自动通过homebrew安装依赖包,等待一段时间后就可以成功安装好 RVM。

然后,载入 RVM 环境(新开 Termal 就不用这么做了,会自动重新载入的)

$ source ~/.rvm/scripts/rvm

检查一下是否安装正确

$ rvm -v
rvm 1.27.0 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]

步骤2 - 用 RVM 安装 Ruby 环境

列出已知的ruby版本

$ rvm list known

可以选择现有的rvm版本来进行安装(下面以rvm 2.3.1 版本的安装为例)

$ rvm install 2.3.1

同样继续等待漫长的下载,编译过程,完成以后,Ruby, Ruby Gems 就安装好了。

另附:

查询已经安装的ruby

$ rvm list

卸载一个已安装版本

$ rvm remove 2.0.0

步骤3 - 设置 Ruby 版本

RVM 装好以后,需要执行下面的命令将指定版本的 Ruby 设置为系统默认版本

$ rvm 2.3.1 --default

同样,也可以用其他版本号,前提是你有用 rvm install 安装过那个版本

这个时候你可以测试是否正确

$ ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]

其它:

Ruby的默认源使用的是cocoapods.org,国内访问这个网址有时候会有问题,网上的一种解决方案是将源替换成淘宝的,替换方式如下:

$ gem source -r https://rubygems.org/
$ gem source -a https://ruby.taobao.org/

要想验证是否替换成功了,可以执行:

$ gem sources -l

正常的输出结果:

CURRENT SOURCES            

http://ruby.taobao.org/            


到这里就已经把Ruby环境成功的安装到了Mac OS X上,接下来就可以进行相应的开发使用了。

参考:http://www.cnblogs.com/daguo/...

相关文章:

  • [译]CSS 居中(Center)方法大合集
  • java httpclient使用socks5代理(二)使用socks5代理服务
  • C#:为详情查看界面设计的万用TextBox自定义控件
  • JS --事件
  • Sublime Text 3 关闭自动提示
  • 用verilog模拟DDS产生正弦波信号
  • 第k个元素(模板)
  • 景德镇特色的部门级别与权限
  • swift 字符串创建类
  • push 和pop的区别
  • linux命令行模式下实现代理上网 专题
  • tab.js分享及浏览器兼容性问题汇总
  • linux----进度条程序
  • Eclipse:The superclass javax.servlet.http.HttpServlet was not found on the Java Build Path
  • 运行TestCase时,提示:Element is not currently visible and so may not be interacted with
  • “大数据应用场景”之隔壁老王(连载四)
  • 《Java编程思想》读书笔记-对象导论
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • 2019.2.20 c++ 知识梳理
  • angular学习第一篇-----环境搭建
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • Java IO学习笔记一
  • JAVA之继承和多态
  • learning koa2.x
  • MD5加密原理解析及OC版原理实现
  • mysql常用命令汇总
  • React组件设计模式(一)
  • ucore操作系统实验笔记 - 重新理解中断
  • Vue UI框架库开发介绍
  • 百度地图API标注+时间轴组件
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • ionic入门之数据绑定显示-1
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • ​Linux·i2c驱动架构​
  • ​queue --- 一个同步的队列类​
  • ​人工智能书单(数学基础篇)
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #mysql 8.0 踩坑日记
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #大学#套接字
  • (1)(1.13) SiK无线电高级配置(六)
  • (13):Silverlight 2 数据与通信之WebRequest
  • (vue)页面文件上传获取:action地址
  • (补)B+树一些思想
  • (二)斐波那契Fabonacci函数
  • (原創) 未来三学期想要修的课 (日記)
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • ../depcomp: line 571: exec: g++: not found
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)