@qidiandasheng
2021-04-23T06:50:16.000000Z
字数 1950
阅读 1306
Python&Ruby
Ruby 是一种面向对象、命令式、函数式、动态的通用编程语言。
mac自带了ruby的运行环境,默认安装目录在:
➜ ~ which ruby
/usr/bin/ruby
RVM是一個管理 Ruby 版本的工具。有了系统自带的ruby,我们可以使用,但是有时候我们可能想使用不同的版本,去修改系统版本很可能造成一些问题。
# 安装 rvm,不能翻墙请指定ruby源
curl -sSL https://get.rvm.io | bash -s stable
# 安装指定版本的ruby 2.5.1
rvm install 2.5.1
# 指定ruby默认版本
rvm use 2.5.1 --default
然后我们再看一下对应版本的ruby运行环境的安装目录:
➜ ~ which ruby
/Users/dasheng/.rvm/rubies/ruby-2.5.1/bin/ruby
运作方式可以将其分为三个部分:①:Ruby 版本、②:Gemset 环境、③:Gem。
安裝的 Ruby 版本可以对应到设定的 Gemset,而 Gemset 又指向很多的 Gem:
RVM 不仅可以提供一个多 Ruby 版本共存的环境,还可以根据项目管理不同的 gemset.
gemset 可以理解为是一个独立的虚拟 Gem 环境,每一个 gemset 都是相互独立的。里面安装的gem都是不同的。
gemset
是附加在 Ruby 语言版本下面的,例如你用了 2.2.4, 建立了一个叫 rails3 的 gemset
。当切换到 2.5.1 的时候,rails3 这个 gemset 并不存在。
#建立gemset
rvm use 2.5.1
rvm gemset create rails3
#切换版本和版本对应的gemset
rvm use 2.5.1
rvm use 2.5.1@rails3
#设置系统默认的gemset(设置global的时候最好先rvm gemset create global)
rvm 2.5.1@rails3 --default
#列出当前的gemset
rvm gemset list
#删除一个 gemset
rvm gemset delete rails3
#安装gem到指定的gemset
rvm @global do gem install rake
在 Ruby 当中,有许多用 Ruby 写成的套件可以直接使用。而我们为了使用这些套件,经常会使用到这个服务。
RubyGems
提供了 ruby 社群的 gem 的托管服务用于 ruby 软件包的下载、安裝,而我們安裝下來的东西就称为 Gem。
查看:gem sources -l
添加:gem sources -a url地址
更新:gem sources -u
删除:gem sources -r url地址
gem版本:gem -v
更新所有包:gem update
更新RubyGems软件 :gem update --system
安装rake,从本地或远程服务器:gem install rake
安装rake,从远程服务器:gem install rake --remote
安装到指定的gemset:rvm @global do gem install rake
指定安装版本的:gem install rake -v(或者--version) 1.6.2
卸载rake包:gem uninstall rake
清除所有包旧版本,保留最新版本:gem cleanup
查看gem的环境:gem environment
下面pod和chaos的目录是在rubies
下面,one的目录是在gems
下面:
➜ ~ which pod
/Users/dasheng/.rvm/rubies/ruby-2.5.1/bin/pod
➜ ~ which chaos
/Users/dasheng/.rvm/rubies/ruby-2.5.1/bin/chaos
➜ ~ which one
/Users/dasheng/.rvm/gems/ruby-2.5.1/bin/one
导致执行以下代码时报错:
one_path = `which one`
lib = File.expand_path('../../lib', one_path)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'onetool/onepods/onepods'
[!] Invalid `Podfile` file: cannot load such file -- onetool/onepods/onepods.
当切换rvmset
为global
后正常:
➜ ~ rvm use 2.5.1@global --default
➜ ~ which one
/Users/dasheng/.rvm/rubies/ruby-2.5.1/bin/one