标签: rbenv

初始化rbenv并从shell脚本运行ruby脚本

初始化rbenv并从shell脚本运行ruby脚本

我希望svnserve运行pre-commit hook,写在ruby上.由于svnserve以root用户身份运行,因此它对用户rbenv安装一无所知.

我设置了一个软链接/ usr/bin/ruby​​ - > /home/admin/.rbenv/shims/ruby.结果,当我尝试

#!/usr/bin/ruby
puts "Pre-commit hook!"
Run Code Online (Sandbox Code Playgroud)

它显示错误:

Transmitting file data .svn: Commit failed (details follow):
svn: Commit blocked by pre-commit hook (exit code 255) with no output.
Run Code Online (Sandbox Code Playgroud)

当我在服务器上手动运行时:

admin $ sudo ./pre-commit
/usr/bin/ruby: line 4: exec: rbenv: not found
Run Code Online (Sandbox Code Playgroud)

所以,我想,需要rbenv初始化,但是如何?

ruby shell svn-hooks rbenv

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

rbenv版本显示在zsh右键提示不刷新

我的.zshrc中有以下代码:

local ruby_version=''
if which rvm-prompt &> /dev/null; then
  ruby_version="$(rvm-prompt i v g)"
else
  if which rbenv &> /dev/null; then
    ruby_version="$(rbenv version | sed -e "s/ (set.*$//")"
  fi
fi
Run Code Online (Sandbox Code Playgroud)

我在RPS1提示符中有这个代码:

RPS1='${PR_GREEN}$(virtualenv_info)%{$reset_color%} ${PR_RED}${ruby_version}%{$reset_color%}'
Run Code Online (Sandbox Code Playgroud)

(为简洁起见,我没有显示设置PR_颜色或确定虚拟环境的代码 - 这两者都起作用.)

创建新shell时(iTerm2中的新窗口或新选项卡),Ruby信息是正确的.但是,如果我切换到使用不同Ruby的项目(由.ruby-version文件确定),则右侧提示中显示的Ruby信息不会刷新.如果我重新获取.zshrc文件,则右键提示会刷新.

我是否需要在函数中包含确定Ruby版本的代码?顺便说一句,我也有setopt promptsubst.zshrc.

当我更改目录时,我错过了什么阻止了右键提示的刷新?

zsh zshrc rvm rbenv

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

使用$ sudo bundle exec ...引发'bundle:command not found'错误

我在Ubuntu服务器上安装了rbenv.我可以进入我的应用程序目录并运行$ bundle没有问题,但是我需要运行$ sudo bundle exec ...,这会给我一个错误:

bundle:找不到命令

为什么这样,我该如何解决?

ruby sudo ruby-on-rails bundler rbenv

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

rbenv 在使用系统时破坏了我的 gem 安装目录

我想使用 rbenv 为每个项目的项目设置 ruby​​ 版本。否则,我想将我的默认系统 ruby​​ 设置用于其他所有内容。

我遇到的问题是即使rbenv version返回systemgem命令仍然使用 rbenv 垫片(.rbenv/shims/gem)。所以当我做gem environment我的安装目录时'/Library/Ruby/Gems/1.8'。我宁愿它仍然存在~/.gem/。我可以看到它仍然是当我运行时/usr/bin/gem enviroment。我无法弄清楚 rbenv shim gem 从哪里获取其设置。

我已经尝试在我的 shell 中修改我的 GEM_HOME,并将其更改,~/.gemrc但这没有任何效果。我一直在四处寻找,但没有运气。希望这里有人可以提供帮助。只是一些指向 rbenv gem shim 从何处提取其值的指针会有所帮助。

谢谢

ruby macos rbenv

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

如何在 .ruby-version 中使用任何补丁级别的 Ruby - rbenv/rvm

无论rbenvRVM支持使用一个.ruby-version文件来指定一个项目文件夹内的一个Ruby的版本。我只想定义没有补丁级别的版本。

我尝试以下使用Ruby 1.9.3的任何PATCHLEVEL定义,但既不工作:1.9.31.9.3-p*

我知道rbenv-aliasesrvm alias但是没有它们是否有可能做到这一点?

给 Rails 用户的提示:

您可以添加到您的 Gemfile:

ruby '1.9.3'  
Run Code Online (Sandbox Code Playgroud)

如果您尝试使用不同版本运行您的应用程序,这将引发警告。

ruby ruby-on-rails rvm rbenv

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

rvm和rbenv做什么来安装Ruby?

多年来,我一直梦想着学习Ruby和Rails框架.(我的大部分开发生涯都让我忙于花时间去正确地学习新语言,但我现在花更多的时间.)我喜欢能够与Ruby一起快速开发的概念,但是我我无法理解Ruby安装过程.

每次我遇到它,Ruby安装过程都会略有不同.我在过去几年中使用的这两款笔记本电脑通常都运行了最新发布的OS X版本,而且似乎都附带了Ruby 1.8.7.任何现代版本的Rails都需要Ruby 1.9.x. 所以,我搜索网络和不变的碰撞到这样的帖子:

使用这个名为rvm的强大工具在同一台机器上管理多个Ruby安装.

或这个:

rbenv非常棒,与rvm相比轻巧,请使用它.

真?Ruby安装过程在做什么,为什么它如此复杂?到现在为止,我已经安装并运行了Ruby,但似乎我总是遇到麻烦.我真的很困惑,想要了解Ruby如何在我的系统上运行.这些配置工具操作的文件是什么,为什么我不能手工操作?

换句话说:如果我是RVM或者rbevn,我采取了哪些措施让Ruby在给定系统上工作?我操纵配置文件了吗?我下载源代码并将其编译成解释器吗?我是否正在下载预编译的口译员?

ruby ruby-on-rails rvm rbenv

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

如何在使用rbenv时使用Sublime Text 2 build?

我正在使用rbenv,当尝试在Sublime Text 2(Cmd+B)中使用构建函数时,它尝试使用ruby和gem下的/Library/Ruby/Gems/

我怎么能告诉ST2使用我的rbenv红宝石?

PS:我安装rbenv使用Boxen有.

rbenv sublimetext2

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

如何在使用rbenv +不同的ruby版本时从OSX的系统ruby 1.8.x正确卸载gem?

我有rbenvruby 2.1.0当前安装的,我想用我安装了这个版本的红宝石任何宝石向前移动.

但是我也有系统(OSX 10.9)默认ruby(1.8.x),我以前为该版本安装了一些宝石.我在这里可以看到它们:

/Library/Ruby/Gems/1.8/gems

我不知道如何gem从上面的目录中正确卸载所以我可以清理我的机器并为我rbenv托管的新版本的ruby 重新安装一些这些宝石的更新版本.

例如,我已经为1.8.x安装了Compass和Sass,我不再需要Compass,并且希望将它从我的机器中删除,并希望将Sass从3.2升级到3.3但是让它运行ruby 2.1.0.

目前,gem list只给我当前安装的ruby设置的活动版本的宝石rbenv,这是完全合理的.

那么我怎样才能gem uninstall <old ruby 1.8.x gem>找到/Library/Ruby/Gems/1.8/gems

ruby gem rubygems uninstall rbenv

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

Unicorn服务upstart脚本抛出"-su:bundle:command not found"

我最近在DigitalOcean上创建了一个VPS来托管rails应用程序.我按照他们的指南用我的应用程序设置了Unicorn.https://www.digitalocean.com/community/tutorials/how-to-deploy-a-rails-app-with-unicorn-and-nginx-on-ubuntu-14-04

我跑的时候出了问题sudo service unicorn_appxyz start.给出的错误是-su: bundle: command not found

我跟踪了init.d脚本并在终端中粘贴了评估的服务器启动命令,它在用户joe(rbenv安装的用户和应用程序的所有者)下执行时工作正常.评估的命令是

su - joe -c cd /home/joe/appxyz && bundle exec unicorn -c config/unicorn.rb -E production -D
Run Code Online (Sandbox Code Playgroud)

我然后sudo su - 进入root用户并运行service unicorn_appxyz start错误当然是一样的.然后我在root下运行了evaluate命令,它返回了这个错误

The program 'bundle' is currently not installed. You can install it by typing:
apt-get install bundler
Run Code Online (Sandbox Code Playgroud)

看来脚本没有切换用户?这可能是我启动VPS时独角兽无法启动的原因.

完整的独角兽新贵脚本在这里:

#!/bin/sh

### BEGIN INIT INFO
# Provides:          unicorn
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails upstart unicorn rbenv ubuntu-14.04

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

rake db:create的问题

我认为这是一个常见的问题,但我已经尝试过我在其他几篇文章中读过的内容,并且我遇到了同样的命运.

我正在使用rbenv,因为这是我第一次遇到的.

rake db:create
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/connection_adapters/connection_specification.rb:177:in `rescue in spec'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/connection_adapters/connection_specification.rb:174:in `spec'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/connection_handling.rb:50:in `establish_connection'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/mysql_database_tasks.rb:8:in `establish_connection'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/mysql_database_tasks.rb:15:in `create'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/database_tasks.rb:93:in `create'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/database_tasks.rb:107:in `block in create_current'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/database_tasks.rb:275:in `block in each_current_configuration'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/database_tasks.rb:274:in `each'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/database_tasks.rb:274:in `each_current_configuration'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/database_tasks.rb:106:in `create_current'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/railties/databases.rake:17:in `block (2 levels) in <top (required)>'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/task.rb:240:in `call'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/task.rb:240:in `block in execute'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/task.rb:235:in `each'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/task.rb:235:in `execute'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/task.rb:179:in `block in invoke_with_call_chain'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/monitor.rb:211:in `mon_synchronize'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/task.rb:172:in `invoke_with_call_chain'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/task.rb:165:in `invoke'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/application.rb:150:in `invoke_task'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/application.rb:106:in `block (2 levels) in top_level'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/application.rb:106:in `each'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/application.rb:106:in `block in top_level'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/application.rb:115:in `run_with_threads'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/application.rb:100:in `top_level'
    /Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/application.rb:78:in `block in …
Run Code Online (Sandbox Code Playgroud)

ruby rubygems ruby-on-rails rbenv

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