标签: rvm

是否可以跳过 .rvmrc 确认?

我们使用RVM来管理 Ruby 安装和环境。

通常我们使用这个.rvmrc脚本:

#!/bin/bash
if [ ! -e '.version' ]; then
  VERSION=`pwd | sed 's/[a-z/-]//g'`
  echo $VERSION > .version
  rvm gemset create $VERSION
fi
VERSION=`cat .version`
rvm use 1.9.2@$VERSION
Run Code Online (Sandbox Code Playgroud)

该脚本强制 RVM 为我们的每个项目/版本创建新的 gem 环境。

但是每次我们部署新版本时,RVM 都会要求我们确认 .rvmrc文件。

当我们cd第一次进入这个目录时,我们会得到类似的信息:

  ================================================== ==============
  = 注意:=
  ================================================== ==============
  = RVM 在 = 中遇到了一个尚未信任的 .rvmrc 文件
  = 当前工作目录,其中可能包含讨厌的代码。=
  = =
  = 检查此文件的内容以确保内容 =
  = 在信任它之前是好的!=
  = =
  = 阅读完文件后按“q”退出阅读器 =
  ================================================== ==============

  (准备好后按回车继续)

这对开发环境来说并没有那么糟糕,但是对于自动部署,它需要手动确认每台服务器上的每个新版本。

是否可以跳过此确认?

linux ruby rvm

16
推荐指数
1
解决办法
5492
查看次数

RVM 不接收 /etc/gemrc

在系统范围的 RVM 中......这是我的 /etc/gemrc

---
gem:--no-ri --no-rdoc
Run Code Online (Sandbox Code Playgroud)

这是系统 gem env

 GEM PATHS:
     - /usr/lib/ruby/gems/1.9.1
     - /home/${USER}/.gem/ruby/1.9.1
    GEM CONFIGURATION:
         - :update_sources => true
         - :verbose => true
         - :benchmark => false
         - :backtrace => false
         - :bulk_threshold => 1000
         - "gem" => "--no-ri --no-rdoc"
Run Code Online (Sandbox Code Playgroud)

这是 rvm 中的那个

GEM PATHS:
 - /usr/local/rvm/gems/ruby-1.9.2-p180
 - /usr/local/rvm/gems/ruby-1.9.2-p180@global
GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
Run Code Online (Sandbox Code Playgroud)

和 rvm @global

    GEM PATHS:
     - …
Run Code Online (Sandbox Code Playgroud)

ubuntu ruby rubygems gem rvm

7
推荐指数
2
解决办法
3173
查看次数

使用 ansible 安装 RVM

我正在尝试在基于 centos 的 vagrant 盒子上安装带有 ansible 的 rvm。

我正在运行的命令是:

vars:
  user: "foo"

- name: install rvm
  action: command sudo -u $user bash /home/$user/rvm-install.sh stable creates=$home/.rvm
Run Code Online (Sandbox Code Playgroud)

它几乎有效,但 Ansible 认为它失败了。

Ansible 输出是:

failed: [127.0.0.1] => {"changed": true, "cmd": ["sudo", "-u", "foo", "bash", "/home/foo/rvm-install.sh", "stable"], "delta": "0:00:21.102322", "end": "2012-10-09 12:33:19.917874", "rc": 1, "start": "2012-10-09 12:32:58.815552"}
stderr: % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1081k  100 1081k    0     0  54170      0  0:00:20 …
Run Code Online (Sandbox Code Playgroud)

centos rvm vagrant ansible

6
推荐指数
2
解决办法
8016
查看次数

是否可以使用 RVM 安装预编译的 Ruby 版本?

我正在使用 EC2,有时会启动我只想使用很短时间的服务器。通常我想在它们上安装某个或多个版本的 Ruby,对于这个 RVM 来说非常方便——如果不是因为编译 Ruby 需要很长时间。当剩下的服务器设置在几分钟内完成时,只需要等待近半个小时来编译 Ruby 真的很无聊。它完全扼杀了云计算体验。

有没有办法获得 RVM 的便利,而无需为我启动的每个新服务器编译每个 Ruby 版本?我可以预编译一个 Ruby 版本并将其保存在某个可访问的地方,然后让 RVM 使用它而不是从源代码编译它吗?我可以在安装 Ruby 版本后简单地将某个目录归档到 RVM 根目录下,将其保存在某处,然后将其解压缩到我启动的下一个服务器上的正确位置吗?在这种情况下,我需要保留哪些文件和目录?

我想使用 RVM 不仅是为了能够在 Ruby 版本之间切换,还因为它允许我为不同的应用程序保留单独的 gemset,所以不使用 RVM 会非常不方便。

所有服务器都具有相同的操作系统和架构,Ubuntu 10.04,32 位。

ruby amazon-ec2 rvm

5
推荐指数
2
解决办法
4095
查看次数

如何修复“ruby 安装缺少 psych(用于 YAML 输出)”。在 CentOS 上?

rvmCentOS 5.8 上安装后:

[rails@localhost ~]$ rvm -v
rvm 1.16.17
[rails@localhost ~]$ which ruby
~/.rvm/rubies/ruby-1.9.3-p286/bin/ruby
[rails@localhost ~]$ ruby -v
ruby 1.9.3p286 (2012-10-12 revision 37165) [i686-linux]
[rails@localhost ~]$ which gem
~/.rvm/rubies/ruby-1.9.3-p286/bin/gem
Run Code Online (Sandbox Code Playgroud)

有一个警告:

$ gem -v
/home/rails/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/yaml.rb:56:in `<top (required)>':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
1.8.24
Run Code Online (Sandbox Code Playgroud)

我遵循了一些建议

$ rvm pkg install libyaml
Fetching yaml-0.1.4.tar.gz to /home/rails/.rvm/archives
Extracting yaml-0.1.4.tar.gz to /home/rails/.rvm/src
Prepare yaml in …
Run Code Online (Sandbox Code Playgroud)

centos ruby rvm

5
推荐指数
1
解决办法
2万
查看次数

如何为 salt-minion 中的特定用户安装 RVM 和 RUBY

我将 Ubuntu 12.04 用于 salt-master 和 salt-minion。当我尝试使用 salt 在 salt-minion 中安装软件包时,它仅安装在特定系统中。但我需要安装在特定用户中。如何为 salt-minion 中的特定用户安装 RVM 和 RUBY?

rvm ubuntu-12.04 saltstack

5
推荐指数
1
解决办法
954
查看次数

使用 rvm 时 gem 环境和 $GEM_PATH 未更新

我正在尝试在带有 cPanel 的服务器上升级 ruby​​ 和 rails gem,为此我安装了 rvm 并成功安装了不同版本的 ruby​​ ......很棒的东西!

但是有一个问题,服务器似乎忽略了要使用的 gemset。安装 1.9.2 的新副本后,我仍然得到相同的 gem 列表,并且 GEM_PATH/GEMHOME 是相同的:

$>gem env

RubyGems Environment:
– RUBYGEMS VERSION: 1.8.15
– RUBY VERSION: 1.9.2 (2011-07-09 patchlevel 290) [x86_64-linux]
– INSTALLATION DIRECTORY: /home/ruby/ruby/gems
– RUBY EXECUTABLE: /home/ruby/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
– EXECUTABLE DIRECTORY: /home/ruby/ruby/gems/bin
– RUBYGEMS PLATFORMS:
– ruby
– x86_64-linux
– GEM PATHS:
– /home/ruby/ruby/gems
– GEM CONFIGURATION:
– :update_sources => true
– :verbose => true
– :benchmark => false
– :backtrace => false
– :bulk_threshold …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails rvm

3
推荐指数
1
解决办法
2863
查看次数

Capistrano 错误“捆绑:未找到”

我正在尝试在 VPS 上部署 octopress 但收到此错误bundle: not found但已安装捆绑包!

完全错误。

$ cap deploy
  * 2013-07-20 18:08:55 executing `deploy'
  * 2013-07-20 18:08:55 executing `deploy:update'
 ** transaction: start
  * 2013-07-20 18:08:55 executing `deploy:update_code'
    updating the cached checkout on all servers
    executing locally: "git ls-remote git@mydomain.com:website.git HEAD"
    command finished in 8348ms
  * executing "if [ -d /home/deploy/ruby_apps/website/shared/cached-copy ]; then cd /home/deploy/ruby_apps/website/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard de26553c0aa7ea583e0bfdec2c103ba83adbb793 && git clean -q -d …
Run Code Online (Sandbox Code Playgroud)

bash capistrano rvm bundler

2
推荐指数
1
解决办法
5899
查看次数

.bashrc 未加载,.bash_profile 存在

在 ubuntu 终端中,直到运行以下命令后,我的 .bashrc 才可用: source ~/.bashrc

我有一个 ~/.bash_profile ,内容如下:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
Run Code Online (Sandbox Code Playgroud)

我有一个 ~/.profile :

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi
Run Code Online (Sandbox Code Playgroud)

我应该怎么做才能自动加载我的 .bashrc?我应该合并 .bash_profile 和 .profile 并删除其中之一吗?谢谢

ubuntu bashrc rvm

0
推荐指数
1
解决办法
4194
查看次数