Vin*_*han 62 ruby rubygems ruby-on-rails
我最近在fedora 12中安装了rails.我也是linux新手.在Windows 7上一切正常.但我在linux中面临很多问题.请帮忙!
我已经安装了所有必需品,以使基本脚本/服务器启动并运行.我在尝试脚本/服务器时弹出boot.rb时出现此错误.我想在此提供的一些细节:
安装rails,ruby和gem的目录,
[vineeth@localhost my_app]$ which ruby
/usr/local/bin/ruby
[vineeth@localhost my_app]$ which rails
/usr/bin/rails
[vineeth@localhost my_app]$ which gem
/usr/bin/gem
Run Code Online (Sandbox Code Playgroud)
当我运行脚本/服务器时,这就是错误.
[vineeth@localhost my_app]$ script/server
./script/../config/boot.rb:9:in `require': no such file to load -- rubygems (LoadError)
from ./script/../config/boot.rb:9
from script/server:2:in `require'
from script/server:2
Run Code Online (Sandbox Code Playgroud)
PATH文件看起来像这样
[vineeth@localhost my_app]$ cat ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH="/usr/local/bin:/usr/local/sbin:/usr/bin/ruby:$PATH"
Run Code Online (Sandbox Code Playgroud)
我想这与PATH文件有关.让我知道我需要在这里改变什么.如果我还有其他变化,请告诉我.
Eim*_*tas 103
我有预感你有两个红宝石版本.请粘贴以下命令的输出:
$ which -a ruby
Run Code Online (Sandbox Code Playgroud)
更新了评论:
核弹一个版本,只留一个版本.我有两个版本查看宝石的不同位置有同样的问题.让我疯了几个星期.在这里拿到赏金给我同样的答案我给你.
我所做的就是核对一个红宝石的安装并通过端口留下一个可管理的.我建议这样做:
/usr
而不是/usr/local
)的端口安装ruby版本rubygems
小智 25
由于安装了多个ruby副本,我在Ubuntu上遇到了类似的问题.(1.8和1.9.1)不幸的是我需要他们两个.解决方案是使用:
$ sudo update-alternatives --config ruby
There are 2 choices for the alternative ruby (providing /usr/bin/ruby).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/ruby1.8 50 auto mode
1 /usr/bin/ruby1.8 50 manual mode
2 /usr/bin/ruby1.9.1 10 manual mode
Press enter to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/bin/ruby1.9.1 to provide /usr/bin/ruby (ruby) in manual mode.
Run Code Online (Sandbox Code Playgroud)
做完捆绑后安装成功了.
Bri*_*kau 18
好吧,我是一个Ruby noob,但我确实得到的解决方法与这里的答案略有不同,所以希望这有助于其他人(tl; dr:我使用RVM将系统Ruby版本切换到rubygems预期的相同版本).
首先,列出Eimantas提到的所有红宝石是一个很好的起点:
> which -a ruby
/opt/local/bin/ruby
/Users/Brian/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
/Users/Brian/.rvm/bin/ruby
/usr/bin/ruby
/opt/local/bin/ruby
Run Code Online (Sandbox Code Playgroud)
系统使用的默认Ruby实例似乎是1.8.7:
> ruby -v
ruby 1.8.7 (2010-06-23 patchlevel 299) [i686-darwin10]
Run Code Online (Sandbox Code Playgroud)
而Rubygems使用的版本是由RVM管理的1.9.2版本:
> gem env | grep 'RUBY EXECUTABLE'
- RUBY EXECUTABLE: /Users/Brian/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
Run Code Online (Sandbox Code Playgroud)
所以这绝对是个问题.我自己并没有主动使用Ruby(这只是我正在尝试运行的构建系统脚本的依赖项)所以我不关心哪个版本是活动用于其他目的.由于rubygems期望已经由RVM管理的1.9.2,我只是使用RVM来切换系统以使用1.9.2版本作为默认值:
> rvm use 1.9.2
Using /Users/Brian/.rvm/gems/ruby-1.9.2-p290
> ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.3.0]
Run Code Online (Sandbox Code Playgroud)
在这样做后,我的"没有这样的文件"问题消失了,我的脚本开始工作了.
ohh*_*hho 12
尝试启动项目:
./script/server
Run Code Online (Sandbox Code Playgroud)
而不是script/server
如果你使用ruby 1.9.2(从奇怪的无法在升级到ruby 1.9.2后需要config/boot)
And*_*ick 11
如果其他人正在搜索这个问题:我能够通过找到我想要使用的难以捉摸的"rubygems"文件夹并将其添加到我的$ RUBYLIB环境变量来修复我的问题.
find / -name "rubygems" -print
Run Code Online (Sandbox Code Playgroud)
找到后,将父目录添加到您的环境中.在bash中,像这样:
export RUBYLIB=/path/to/parent
Run Code Online (Sandbox Code Playgroud)
现在,如果你运行gem,它应该选择正确的库目录,然后你就可以运行了.
我有一个类似的问题,只是运行一个简单的ruby脚本,只需要我想要的宝石......得到了错误信息.当我改变咒语时:
ruby test.rb
Run Code Online (Sandbox Code Playgroud)
至
ruby -rubygems test.rb
Run Code Online (Sandbox Code Playgroud)
似乎工作.
我遇到了类似的问题并通过设置RUBYLIB env解决了这个问题.
在我的环境中我使用了这个:
export RUBYLIB=$ruby_dir/lib/ruby/1.9.1/:$ruby_dir/lib/ruby/1.9.1/i686-linux/:$RUBYLIB
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
160751 次 |
最近记录: |