Uri*_*Uri 41 ruby sinatra bundler rbenv
我刚刚从rvm切换到rbenv,我正在尝试使用bundler进行gem管理.运行bundle install
并尝试运行一个简单的sinatra应用程序(ruby app.rb
),我得到这个:
Could not find haml-3.1.4 in any of the sources
Run `bundle install` to install missing gems.
Run Code Online (Sandbox Code Playgroud)
bundle install
再次跑步没有效果.还尝试bundle update
了另一个问题回复的建议.
这是我的Gemfile:
source "http://rubygems.org"
gem "sinatra"
gem "haml"
Run Code Online (Sandbox Code Playgroud)
这就是bundle show
产生的
* bundler (1.0.22)
* haml (3.1.4)
* rack (1.4.1)
* rack-protection (1.2.0)
* sinatra (1.3.2)
* tilt (1.3.3)
Run Code Online (Sandbox Code Playgroud)
这是我的应用程序所需要的:
require "rubygems"
require "bundler/setup"
require 'sinatra'
Run Code Online (Sandbox Code Playgroud)
我敢说这是一种路径问题,其中bundler和rbenv没有一起玩.我试过通过rbenv的文档查看,但无法找到任何东西.
注意:在另一个sinatra应用程序中,我尝试运行它时会得到以下内容:
Could not find addressable-2.2.7 in any of the sources
Run `bundle install` to install missing gems.
Run Code Online (Sandbox Code Playgroud)
echo $PATH
/Users/uri/.rbenv/shims:/Users/uri/.rbenv/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
which bundle
/Users/uri/.rbenv/shims/bundle
如果我这样做的bundle install --system
话.虽然我不认为这是一个可行的解决方案.
kwe*_*ous 102
我遇到了同样的问题.一个提示是,rbenv exec bundle exec command
工作和rbenv exec bundle install --path vendor/bundle
工作,但他们的前缀等同失败.
我抹去~/.rbenv
,~/.gem
Gemfile.lock
并vendor/bundle
几次试图重新开始.一旦这些被清理干净,我尝试了以下方法:
rbenv install 1.9.3-p194
rbenv rehash # for paranoia's sake
rbenv global 1.9.3-p194
gem env # to check that everything was pointing at 1.9 and not the system
gem install --no-ri --no-rdoc bundler
rbenv rehash # necessary to load up the bundle executable
bundle --path=vendor/bundle
Run Code Online (Sandbox Code Playgroud)
它工作了!
我认为重要的是,因为我尝试了几次,就是从主目录中删除.gem文件.它似乎妨碍了.
Ben*_*all 22
你跑了吗?
rbenv rehash
Run Code Online (Sandbox Code Playgroud)
这将为所有ruby二进制文件提供垫片,包括由宝石安装的二进制文件.
小智 20
添加这个
set :default_environment, {
'PATH' => "$HOME/.rbenv/shims:$HOME/.rbenv/bin:$PATH"
}
Run Code Online (Sandbox Code Playgroud)
deploy.rb为我工作.
http://henriksjokvist.net/archive/2012/2/deploying-with-rbenv-and-capistrano/
我建议你使用gem'capistrano-rbenv'(https://github.com/yyuu/capistrano-rbenv)
确保在远程服务器中安装了"rbenv"和ruby版本(例如1.9.3)
在你的config/deploy.rb(capistrano文件)中
require 'capistrano-rbenv'
Run Code Online (Sandbox Code Playgroud)在你的Gemfile中:
gem 'capistrano-rbenv', '1.0.1'
Run Code Online (Sandbox Code Playgroud)而已.要调试它是否有效,只需运行:
$ cap shell
cap> which ruby
** [out :: 10.103.13.74] /root/.rbenv/shims/ruby
cap> ruby -v
** [out :: 10.103.13.74] ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-linux]
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
40125 次 |
最近记录: |