1

这是一个非常奇怪的问题,我不知道如何进行。

基本上,我可以安装 gems 并在任何文件夹中正常使用它们,除了那些用 rails 创建的文件夹。这很奇怪。很难解释,所以也许这个控制台输出会解释

    passenger@rubyserve:~/railsapps$ ls
    app  test_application  testing
    passenger@rubyserve:~/railsapps$ rails -v
    Rails 3.2.2
    passenger@rubyserve:~/railsapps$ 
    passenger@rubyserve:~/railsapps$ 
    passenger@rubyserve:~/railsapps$ cd app/
   passenger@rubyserve:~/railsapps/app$ ls -a
   .   app     config.ru  doc      Gemfile.lock  lib  public    README.rdoc  test  vendor
   ..  config  db         Gemfile  .gitignore    log  Rakefile  script       tmp
    passenger@rubyserve:~/railsapps/app$ 
    passenger@rubyserve:~/railsapps/app$ 
    passenger@rubyserve:~/railsapps/app$ rails -v
    The program 'rails' is currently not installed.  To run 'rails' please ask your administrator to install the package 'rails'
    passenger@rubyserve:~/railsapps/app$ 

这让一切都变得有意义。在我的 rails 文件夹之外,我可以调用 rails 来创建一个新应用程序,但是一旦进入,就不会检测到 rails。这对于所有 gem 都是一样的,包括 bundler。

我的第一个想法是不知何故,rails 隐藏了一些特定的 gem 文件夹,所以我从 rails 项目中完成了我的 gem 安装,但这也不起作用。

有什么想法吗?


我的设置是 ubuntu 服务器 10.10(我知道,我知道)Ruby 1.9.2 gem 1.8.17,我正在使用来自 wayneeseguin 的最新 rvm。enter code here

4

1 回答 1

0

有时会出现这种类型的问题,我认为您可以通过安装和使用 RVM节省大量时间

安装 RVM 后,每次创建单独的项目时都会创建 gemset 目录。例如,您首先创建应用程序博客,然后使用此命令创建 gemset 目录

rvm gemset create blog

那么你应该使用这个 gemset 目录以及 ruby​​ 版本,例如你已经安装了 ruby​​ 1.9.2 然后使用这个命令

rvm use ruby-1.9.2@blog

之后进入博客应用程序的目录并安装这个gem

gem install bundler

然后也是bundle install。所以所有本地gem都将安装到rvm下的这个博客目录中,不会出现冲突。但是请记住一件事,如果您的平台是ubuntu那么这将起作用

于 2012-03-26T07:38:29.587 回答