如何使用RVM重新编译ruby?

Dog*_*her 39 ruby rvm

我用RVM安装了Ruby 1.9.3,它运行正常.然后我在ruby C源文件中做了一些更改,我想重新编译并重新安装它,以便我可以使用这些更改.我没有找到任何类型的rvm重新编译命令.

aga*_*rie 55

使用的问题rvm [reinstall|install]是它将获取并使用预编译的二进制文件,如果它可以找到任何.有时候,你真的想从源代码重建,可能是因为你试图使用更新版本的GCC(例如4.8或4.9).

正确的标志是--disable-binary,而不是--force:

rvm reinstall --disable-binary 2.1
Run Code Online (Sandbox Code Playgroud)

  • 这有助于我从Fedora 23升级 - > 24并且mysql2 gem不再起作用,因为它是针对早期的libmysql编译的. (3认同)

Dog*_*her 28

啊哈.rvm uninstall [RUBY]接下来rvm install [RUBY]是诀窍.

还是更好的:

rvm reinstall [RUBY]
Run Code Online (Sandbox Code Playgroud)


thr*_*ree 12

要么 rvm reinstall [RUBY]



mpa*_*pis 8

使用:

rvm install --force
Run Code Online (Sandbox Code Playgroud)

它明确要求RVM使用现有的源代码,在早期版本中这是默认的 - 但可能会非常混乱.

所以其他命令还可以安装:

rvm try_install <ruby>
Run Code Online (Sandbox Code Playgroud)

只安装(如果尚未安装)(您的问题)

rvm reinstall <ruby>
Run Code Online (Sandbox Code Playgroud)

是相同的:

rvm remove [--gems] <ruby>
rvm install <ruby>
Run Code Online (Sandbox Code Playgroud)

显然节省了一些时间reinstall 并使用[--gems]来删除所有使用ruby安装的gem.

mkdir -p projects/smth && cd projects smth
rvm use 1.9.3@gem --install --create --ruby-version
Run Code Online (Sandbox Code Playgroud)

将进入项目,安装1.9.3(如果尚未安装),创建gemset,并创建.ruby-version文件(仅在V 1.11.0之前的RVM头中可用)其他flgs:

  • --rvmrc- 已在RVM中可用 - 将创建.rvmrc文件
  • --versions-conf- 仅在v.1.11.0之前的RVM头中可用 - 将创建.versions.conf- 项目的配置文件,您可以放置​​有关项目的任何重要信息...如node.js版本