在 Ruby 开发中,时常有在多个 Ruby 版本中测试代码的需求场景。为了使事情变得更加简单,我们可以选用 rbenv 这个 Ruby 版本管理工具。如果将它与 ruby-build 搭配使用,则可实现自动编译安装 Ruby、轻松管理多个 Ruby 版本的目的。

image.png

rbenv 及 ruby-build 的安装

rbenv 和 ruby-build 的源代码托管在 GitHub 上,只需通过 git 命令直接 clone

到本机即可完成安装。

我们先安装 rbenv:

$ cd

$ git clone git://github.com/sstephenson/rbenv.git .rbenv

$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> .bash_profile

$ echo 'eval "$(rbenv init -)"' >> .bash_profile

Zsh 用户请将 .bash_profile 替换成 .zshenv。

接着,我们安装 ruby-build:

$ mkdir .rbenv/plugins

$ cd .rbenv/plugins

$ git clone git://github.com/sstephenson/ruby-build.git

为使已安装的 rbenv 和 ruby-build 在我们的 shell 中即时生效,所以我们执行以下命令:

$ source ~/.bash_profile

同样的,Zsh 用户需换成 .zshenv。


安装 Ruby

现在,我们的 rbenv 工具已经准备就绪,可以用它来安装各种 Ruby 版本了。不过,在此之前,我们还得准备编译安装 Ruby 的各种工具(如编译器)及依赖。以 Ubuntu 为例,可通过下列命令安装:

$ sudo apt- get install build-essential autoconf automake bison libtool \

openssl libreadline6 libreadline6- dev curl zlib1g zlib1g- dev libssl- dev \

libyaml- dev libsqlite3- dev sqlite3 libxml2- dev libxslt- dev libc6- dev ncurses- dev

假如我们想要安装 Ruby 的最新版本 1.9.3 p194,那么可以执行:

$ rbenv install 1.9 . 3 -p194

提示 :不带参数执行 rbenv install 可以获得可安装的 Ruby 版本列表。

rbenv 会先从 Ruby 官方网站下载源码包,然后开始自动化的编译安装过程。 根据机器的配置,该过程稍微有点耗时,你可以通过如下命令来监视:

$ tailf /tmp/ ruby-build.*.log

你可以根据实际需要安装多个 Ruby 版本。在此,我们也将安装 Ruby 1.8.7 p370:

$ rbenv install 1.8 . 7 -p370

在 Ruby 安装完成之后,我们需要执行下面的命令,以便 rbenv 重建 shim 可执行文件:

$ rbenv rehash


管理 Ruby 版本

rbenv 支持以下三种 Ruby 版本的环境管理:

  • global:设置全局的 Ruby 版本,换句话说,所有的 shell 都将使用该 Ruby 版本。
  • local:为本地的一个特定项目设置 Ruby 版本,注意这将覆盖全局设置。
  • shell:针对 shell 设置 Ruby 版本,该设置将覆盖 global 和 local 设置。

要将我们先前安装的 Ruby 1.9.3 p194 设置为全局性版本,可以执行:

$ rbenv global 1.9 .3 -p194

设置为局部性版本和 shell 级版本,可分别执行:

$ rbenv local 1.9.3-p194

$ rbenv shell 1.9.3-p194

最后,通过 rbenv versions 能够查看已经安装的 Ruby 版本,其中,带 * 的项目为当前正在使用的 Ruby 版本。

RVM是Ruby Version Manager的缩写,是一个命令行工具,它可以让你轻松地安装,管理和使用多个版本的Ruby.不同的rails项目使用等ruby和rails版本不一样的时候,可以使用RVM自由切换。 前段时间在玩Chef-一个IT基础设施自动化工具。由于Chef是由Ruby写的一个gem,那么就需要安装Ruby。当然Ruby我早就安装了,并且使用rvm来管理Ruby及Gem。本来一切看似正常,但是不会预料后面会遇到那么多的坑。 别梦依稀咒逝川,Ruby二十八年前|M1芯片Mac os系统配置Ruby(3.0.0) on Rails(6.1.1)开发环境
在每个开发者心里,都会有一门“最好”的语言,在这个世界的某个深处,在一些矫矫不群的人们心中,这门语言的名字叫做Ruby,它今年二十八岁了,历史和Java一样的悠久,但是它没有大厂背书、它的性能被开发者诟病、时至今日依然无法高效利用多核资源,甚至于它每年都要被“死亡”一次,相比于有太阳计算机系统、甲骨文、IBM 这些大公司支持的 Java,它是那么的一无所有,但是,它又拥有全世界最虔诚的“信徒”,拥有最活跃的开发者社区,这一切,又让它是那么的应有尽有。是的,这就是Rubyist的理念:有的时候,你想证明给一万个人看,到后来,你发现只得到了一个明白的人,那就够了。
基于Docker在Win10平台搭建Ruby on Rails 6.0框架开发环境
2023年,“非著名Web框架”--Ruby on Rails已经18岁了。在今年,Rails 6.0趋于完善,除了拿掉讨厌的Jquery,Webpacker 也成为默认前端打包方案,Sprockets 开始软着陆,未来很可能会和Jquery一样被彻底废弃,这就是历史的进程。
最简单的做法是直接将本地电脑1上的代码拷贝到服务器上。 但是我们拷贝完成后发现了一个bug1,在本地电脑1的代码中修复了之后。需要与云服务器上的代码同步,还是要将本地电脑1的代码拷贝到服务器上吗? 团队的另一个人修改了bug2,没有修改bug1,他如果将自己本地电脑2的代码拷贝到服务器上,就会将你刚刚修改的bug1代码覆盖掉。 所以我们现在需要一个第三方先将代码处理整合一下,将我们自己的代码与团队其他人的代码整合起来,再通过git pull操作将整合后