当使用guard-rspec在Rails 4项目中运行guard时,我在vim中打开/关闭文件时偶尔会看到以下错误.我试过升级/降级后卫,guard-rspec,pry和其他没有运气的库.
下面是我看到的每一次测试运行的堆栈跟踪:
Error: can't modify string; temporarily locked
/home/charles/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/pry-0.9.12.2/lib/pry/pry_instance.rb:624:in `readline'
/home/charles/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/pry-0.9.12.2/lib/pry/pry_instance.rb:624:in `block in readline'
/home/charles/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/pry-0.9.12.2/lib/pry/pry_instance.rb:564:in `handle_read_errors'
/home/charles/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/pry-0.9.12.2/lib/pry/pry_instance.rb:609:in `readline'
/home/charles/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/pry-0.9.12.2/lib/pry/pry_instance.rb:384:in `retrieve_line'
/home/charles/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/pry-0.9.12.2/lib/pry/pry_instance.rb:301:in `block in r'
/home/charles/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/pry-0.9.12.2/lib/pry/pry_instance.rb:298:in `loop'
/home/charles/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/pry-0.9.12.2/lib/pry/pry_instance.rb:298:in `r'
/home/charles/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/pry-0.9.12.2/lib/pry/pry_instance.rb:276:in `re'
/home/charles/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/pry-0.9.12.2/lib/pry/pry_instance.rb:254:in `rep'
/home/charles/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/pry-0.9.12.2/lib/pry/pry_instance.rb:234:in `block (3 levels) in repl'
/home/charles/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/pry-0.9.12.2/lib/pry/pry_instance.rb:232:in `loop'
/home/charles/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/pry-0.9.12.2/lib/pry/pry_instance.rb:232:in `block (2 levels) in repl'
/home/charles/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/pry-0.9.12.2/lib/pry/pry_instance.rb:231:in `catch'
/home/charles/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/pry-0.9.12.2/lib/pry/pry_instance.rb:231:in `block in repl'
/home/charles/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/pry-0.9.12.2/lib/pry/pry_instance.rb:230:in `catch'
/home/charles/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/pry-0.9.12.2/lib/pry/pry_instance.rb:230:in `repl'
/home/charles/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/pry-0.9.12.2/lib/pry/pry_class.rb:170:in `start'
/home/charles/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/guard-2.1.1/lib/guard/interactor.rb:133:in `block in start'
[1] Specs guard(main)>
Run Code Online (Sandbox Code Playgroud) 我已经在我的Ubuntu 14.04桌面上成功安装了rbenv(以及构建工具),这似乎工作正常,但是当我尝试安装ruby 2.1.1时,构建失败:
daniel@grape:~$ rbenv install 2.1.1
Downloading yaml-0.1.6.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/5fe00cda18ca5daeb43762b80c38e06e
Installing yaml-0.1.6...
Installed yaml-0.1.6 to /home/daniel/.rbenv/versions/2.1.1
Downloading ruby-2.1.1.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/e57fdbb8ed56e70c43f39c79da1654b2
Installing ruby-2.1.1...
BUILD FAILED
Inspect or clean up the working tree at /tmp/ruby-build.20140418142258.3543
Results logged to /tmp/ruby-build.20140418142258.3543.log
Last 10 log lines:
installing default ripper libraries
compiling ossl_pkcs7.c
compiling ossl_ssl.c
installing default openssl libraries
linking shared-object openssl.so
make[2]: Leaving directory `/tmp/ruby-build.20140418142258.3543/ruby-2.1.1/ext/openssl'
linking shared-object ripper.so
make[2]: Leaving directory `/tmp/ruby-build.20140418142258.3543/ruby-2.1.1/ext/ripper'
make[1]: Leaving directory `/tmp/ruby-build.20140418142258.3543/ruby-2.1.1'
make: *** [build-ext] Error 2
Run Code Online (Sandbox Code Playgroud)
日志文件的内容可以在这里找到:http: …
我想用rbenv安装最新的稳定版Ruby .rbenv本身不会发生此功能.
当我rbenv install -l在shell中运行命令时,我得到了一长串可用版本.该列表包含所有类型的条目.以下是部分列表,以展示格式和多样性:
$ rbenv install -l
Available versions:
2.0.0-p643
2.0.0-p645
2.1.0-dev
2.1.0-preview1
2.1.0-preview2
2.1.0-rc1
2.1.4
2.1.5
2.1.6
2.2.0-dev
2.2.0-preview1
2.2.0-preview2
2.2.0-rc1
2.2.0
2.2.1
2.2.2
2.3.0-dev
jruby-1.7.19
jruby-1.7.20
jruby-9.0.0.0-dev
jruby-9.0.0.0+graal-dev
jruby-9.0.0.0.pre1
jruby-9.0.0.0.pre2
maglev-1.0.0
maglev-1.1.0-dev
maglev-2.0.0-dev
mruby-dev
mruby-1.0.0
mruby-1.1.0
rbx-2.5.2
rbx-2.5.3
ree-1.8.7-2011.12
ree-1.8.7-2012.01
ree-1.8.7-2012.02
topaz-dev
Run Code Online (Sandbox Code Playgroud)
我的目标是rbenv install VERSION在shell脚本中自动执行命令,其中VERSION是最高x.x.x版本.换句话说,我需要自动替换以数字开始,不是结束名单上最高的入门-something成VERSION.从这个清单,我需要2.2.2.
我可以在shell脚本中添加什么来自动选择x.x.x命令中的最高版本rbenv install x.x.x?
编辑:由于尚未安装Ruby,解决方案必须是Bash而不是Ruby.
编辑2:我想要Ruby(主流)版本的Ruby.
试图让克隆的Rails应用程序运行.运行时bundle install我收到此错误:
Using mini_portile (0.5.0)
Installing nokogiri (1.6.0)
Gem::InstallError: nokogiri requires Ruby version >= 1.9.2.
An error occurred while installing nokogiri (1.6.0), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.6.0'` succeeds before bundling.
Run Code Online (Sandbox Code Playgroud)
但这是输出rbenv version:
› rbenv version
1.9.3-p429 (set by /Users/andrewguo/.rbenv/version)
Run Code Online (Sandbox Code Playgroud)
跑步时gem list我得到:
.
.
.
mini_portile (0.5.0)
minitest (2.5.1)
multi_json (1.7.7)
nokogiri (1.6.0)
Run Code Online (Sandbox Code Playgroud)
我已经绞尽脑汁一小时了,现在试图找出可能出错的地方......请帮助!
编辑:
这是一个更详细的错误输出:
An error occurred while installing nokogiri (1.6.0), and Bundler cannot continue.
Make …Run Code Online (Sandbox Code Playgroud) 我正在使用rbenv,Your Ruby version is 2.0.0, but your Gemfile specified 2.2.2当我bundle install在项目中运行命令时出现错误.奇怪的是我实际安装了2.2.2版本(我的Gemfile指定),而不是2.0.0版本.(见下图).
我尝试了这个线程中提供的解决方案:你的Ruby版本是2.0.0,但是你的Gemfile指定了2.1.0,但它没有效果.
如果这有任何区别的话,我会使用优胜美地的MacBook Air.
更新:
which ruby - > Users/myuser/.rbenv/shims/rubyruby -v - > ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14] rbenv global 2.2.2并且rbenv rehash,没有效果which bundle - > /usr/bin/bundlegem env- > - GEM PATHS:
/Users/myuser/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/Users/myuser/.gem/ruby/2.2.0我用rbenv安装了Ruby 1.9.3-p286.现在,在安装了较新版本(p327)之后,很明显,它对以前版本安装的GEM一无所知.
是否可以将Gems从该版本复制到较新版本,以便不再需要将它们全部下载?
我最近从RVM迁移到Rbenv,当我尝试执行rails时,我收到的错误如下所示
Pauls-Air:~ $ rails
rbenv: rails: command not found
The `rails' command exists in these Ruby versions:
2.1.2
Run Code Online (Sandbox Code Playgroud) 运行pod install时安装时遇到问题yoga。好像是我的ruby环境有问题?
$ pod install
Analyzing dependencies
Fetching podspec for `Folly` from `../node_modules/react-native/third-party-podspecs/Folly.podspec`
Fetching podspec for `Permission-Camera` from `../node_modules/react-native-permissions/ios/Camera.podspec`
Fetching podspec for `Permission-LocationAlways` from `../node_modules/react-native-permissions/ios/LocationAlways.podspec`
Fetching podspec for `Permission-LocationWhenInUse` from `../node_modules/react-native-permissions/ios/LocationWhenInUse.podspec`
Fetching podspec for `RNPermissions` from `../node_modules/react-native-permissions`
Fetching podspec for `React` from `../node_modules/react-native/`
Fetching podspec for `yoga` from `../node_modules/react-native/ReactCommon/yoga`
Run Code Online (Sandbox Code Playgroud)
/Users/User/.rbenv/versions/2.3.1/bin/pod install
Run Code Online (Sandbox Code Playgroud)
CocoaPods : 1.5.3
Ruby : ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]
RubyGems : 2.5.1
Host : Mac OS X 10.15.1 (19B88)
Xcode : …Run Code Online (Sandbox Code Playgroud) 我需要在ruby中使用openssl.我该如何安装呢?我已经通过rbenv安装了ruby,并且使用的是ubuntu 12.04.
kprakasam@ubuntu:~$ ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]
kprakasam@ubuntu:~$ irb
irb(main):001:0> require 'openssl'
LoadError: no such file to load -- openssl
from /home/kprakasam/.rbenv/versions/1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/kprakasam/.rbenv/versions/1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from (irb):1
from /home/kprakasam/.rbenv/versions/1.9.2-p180/bin/irb:12:in `<main>'
Run Code Online (Sandbox Code Playgroud) 我正在尝试通过rbenv为客户端项目安装ruby 2.1.4.
虽然之前我已经能够通过rbenv安装ruby版本,但在升级到Yosemite后,我不断收到以下错误:
rbenv: no such command 'install'
Run Code Online (Sandbox Code Playgroud)
在挖掘之后,我看到很多关于"安装"如何来自ruby-build插件的提示,该插件是通过自制软件安装的:
which ruby-build
/usr/local/bin/ruby-build
Run Code Online (Sandbox Code Playgroud)
我通过Homebrew安装了rbenv,但是当我尝试使用哪个rbenv时,我得到:
rbenv () {
typeset command
command="$1"
if [ "$#" -gt 0 ]
then
shift
fi
case "$command" in
(rehash|shell) eval `rbenv "sh-$command" "$@"` ;;
(*) command rbenv "$command" "$@" ;;
esac
}
Run Code Online (Sandbox Code Playgroud)
我已经运行了brew update和brew升级rbenv ruby-builder,它告诉我一切都是最新的.
以下是我的完整$ PATH:
zsh:没有这样的文件或目录:/ usr/local/var/rbenv/shims:/ usr/local/var/rbenv/shims:/ usr/local/bin:/ usr/local/sbin:/ Users/dannycox /. rbenv /垫片:/Users/dannycox/.rbenv/shims:在/ usr/local/bin目录:在/ usr/bin中:/ bin中:/ usr/sbin目录:/ sbin目录中:/ opt/X11/bin中:在/ usr /本地/去/bin:/Users/dannycox/.rbenv/shims:/Users/dannycox/.rbenv/bin
更新:找到另一个答案,对github进行更深入的挖掘,显示出有希望的迹象,但未能用rbenv解决问题.https://github.com/sstephenson/rbenv/issues/610#issuecomment-56240018
我相信2.1.4现在安装在我的机器上,但它安装在这里:成功将ruby 2.1.4安装到/Users/dannycox/.rubies/ruby-2.1.4
因此,我的捆绑程序将无法使用新的ruby 2.0版本,当我尝试gem install bundle时出现以下错误:
Fetching: bundler-1.7.6.gem (100%)
ERROR: While …Run Code Online (Sandbox Code Playgroud)