vagrant 不会使用 rbenv ruby​​ 版本

     2023-04-12     199

关键词:

【中文标题】vagrant 不会使用 rbenv ruby​​ 版本【英文标题】:vagrant will not use rbenv ruby version 【发布时间】:2013-03-13 07:04:07 【问题描述】:

我正在使用 Vagrant 盒子:

https://dl.dropbox.com/u/14292474/vagrantboxes/precise64-ruby-1.9.3-p194.box

它在 rbenv 下安装了 ruby​​1.9.3。我正在尝试测试一个 Rails 应用程序,并且在我拥有的 chef-solo 配置器中(除其他外),这个块:

execute 'install' do
  action :run
  command "bundle install --path #node.app_name.lib_path/vendor/bundle --binstubs"
  cwd node.app_name.path 
end

rbenv 安装在 vagrant 用户下,并指示全局使用 1.9.3。出于某种原因,当在 vagrant up 期间运行 bundler 时,它仍然使用仅在 /opt/vagrant_ruby 中找到的 1.8.7。

我如何告诉 vagrant 我想使用 rbenv ruby​​ 来执行所有任务。我需要在 execute 块的 env 选项中传递一些东西吗?

【问题讨论】:

我遇到了同样的问题,原因是 $RBENV_ROOT 没有通过 vagrant ssh 连接添加到 $PATH。我尝试将它添加到 /etc/profile 但没有得到任何爱,事实上它完全扼杀了 vagrant 的 ssh 能力 【参考方案1】:

首先开始在你的服务器中获取bundle的路径:

$ which bundle
/opt/rbenv/shims/bundle

然后,知道在 chef 中包含 rbenv 食谱时,常量 RBENV_ROOT 等于 /opt/rbenv,修改你的命令如下:

command "#RBENV_ROOT/shims/bundle install --path #node.app_name.lib_path/vendor/bundle --binstubs"

所以你确保在安装时使用正确版本的 bundle。

您可以做的第二件事是在您使用的用户的 ~/.bashrc 顶部添加 rbenv 的路径(可以位于 /etc/profile.d/rbenv 但取决于您的安装)与厨师独奏

例如,如果您使用的是“部署器”,请编辑 /home/deployer/.bashrc 以使其位于文件顶部:

#Rbenv path for remote shells
source /etc/profile.d/rbenv.sh    # <--- adapt this to your installation

# If not running interactively, don't do anything
[ -z "$PS1" ] && return    # <--- remote shell (ssh connection) will stop at this line

【讨论】:

如何使用 rbenv 和 cron 运行 Ruby 脚本

】如何使用rbenv和cron运行Ruby脚本【英文标题】:HowtorunaRubyscriptusingrbenvwithcron【发布时间】:2012-01-1602:55:10【问题描述】:我正在尝试使用带有cron的rbenv运行Ruby脚本。我知道我需要加载rbenv才能加载正确的Ruby版本。我尝试过这样... 查看详情

sh使用rbenv安装ruby(代码片段)

查看详情

markdown使用rbenv切换ruby版本(代码片段)

查看详情

如何使用 rbenv 在 Ubuntu 21.1 上安装 Ruby 2.3.0?

】如何使用rbenv在Ubuntu21.1上安装Ruby2.3.0?【英文标题】:HowdoIinstallRuby2.3.0onUbuntu21.1usingrbenv?【发布时间】:2022-01-1707:31:11【问题描述】:我正在开发一个使用Ruby2.3.0(使用Rails)编写的应用程序,我的操作系统是LinuxUbuntu21.1。(... 查看详情

从 rbenv 卸载 ruby​​ 版本

】从rbenv卸载ruby​​版本【英文标题】:uninstallrubyversionfromrbenv【发布时间】:2012-02-2704:20:39【问题描述】:如何从rbenv卸载或删除ruby​​版本。我已经安装了两个版本的ruby​​。在切换到ruby​​1.9.3时,我遇到了分段错误。谁... 查看详情

geminstall使用ruby1.8.7,rbenv和其他本地宝石引发了分段错误(代码片段)

我有一个旧的项目维护ruby1.8.7,但我无法安装bundle,因为目前没有安装捆绑器,并尝试geminstallbundler引发Segmentation故障。事实上它不依赖于宝石,geminstall<anygem>也有相同的结果。几个小时的谷歌搜索无效,所以这里有详细信... 查看详情

sh在ubuntu14.04上使用rbenv和ruby-build安装ruby2.2.3(代码片段)

查看详情

rbenv 不改变 ruby​​ 版本

】rbenv不改变ruby​​版本【英文标题】:rbenvnotchangingrubyversion【发布时间】:2012-06-1200:49:21【问题描述】:我根据github的说明安装了rbenv。我正在运行OSX,但我已经在Ubuntu12.04VM上尝试过这个并得到了相同的结果。以下是我尝试更... 查看详情

sh通过rbenv安装ruby(代码片段)

查看详情

为 Ruby on Rails 6 创建弹性 beanstalk 环境时遇到问题(rvm、rbenv、.ruby-version 问题)

...3:56:05【问题描述】:我一直试图弄清楚如何在我的macOS上使用cli将一个简单的ra 查看详情

rbenv

gitclonehttps://github.com/rbenv/rbenv.git~/.rbenvgitclonehttps://github.com/rbenv/ruby-build.git~/.rbenv/plugins/ruby-buildcd~/.rbenv&&src/configure&&make-Csrcecho‘exportPATH="$HOME/. 查看详情

/usr/bin/env ruby​​ 没有这样的文件或目录:使用 capistrano 3、capistrano/rbenv、capistrano/bundler 和 capistrano/rail

】/usr/bin/envruby​​没有这样的文件或目录:使用capistrano3、capistrano/rbenv、capistrano/bundler和capistrano/rails(使用rails4)【英文标题】:/usr/bin/envrubynosuchfileordirectory:Usingcapistrano3,capistrano/rbenv,capistrano/bundlerandcapistrano/rai 查看详情

如何为项目设置特定的 Ruby 版本(无 rvm 和 rbenv)

】如何为项目设置特定的Ruby版本(无rvm和rbenv)【英文标题】:HowtosetspecificRubyversionforprojects(norvmandrbenv)【发布时间】:2019-09-0303:34:48【问题描述】:我在某个项目上工作,但有时我不得不为其他项目更改Ruby版本。现在,当我想... 查看详情

rbenv:安装红宝石时如何具有两个或多个ruby_configure_opts?(代码片段)

我想使用下面的命令用jemalloc而不用rdoc安装ruby,但不知道如何组合它们:RUBY_CONFIGURE_OPTS=--with-jemalloc--disable-install-docrbenvinstall2.6.5-vRUBY_CONFIGURE_OPTS=--disable-install-docrbenvinstall2.6.5-v答案您可以使用双引号设置多个选项。 查看详情

sh[lilite自动化go,rbenv,rubybuild,nvm,androidstudio,conda,r,git,vagrant,buildessential](代码片段)

查看详情

使用 Ruby/Chef Recipe for Vagrant 导入 Mysql 数据库

】使用Ruby/ChefRecipeforVagrant导入Mysql数据库【英文标题】:ImportingMysqldatabaseusingRuby/ChefRecipeforVagrant【发布时间】:2011-08-2522:39:41【问题描述】:我正在编写一个厨师脚本来自动设置开发环境。我可以创建一个数据库并授予权限,... 查看详情

如何让 rbenv 继续调试符号?

...】:我在MacOSXv10.8.3上通过rbenv安装了Ruby2的开发版本,并使用它来编译我正在开发的gem。我有一个要调试的内存问题。不幸的是,每当我在rakespec的上下文中运行valgrind、gdb或cgdb时,我都会得到一个像这样的wholebu 查看详情

安装ruby多版本ruby共存ruby安装慢问题(代码片段)

...地,针对各项目范围global版:全局,没有shell和local版时使用global版shell版:当前终端,只针对当前所在终端查找优先级为shell>local>global。1.安装rbenvgitclonehttps://github.com/rbenv/rbenv. 查看详情