【问题标题】:Installing Rails Path on Ubuntu with RVM使用 RVM 在 Ubuntu 上安装 Rails Path
【发布时间】:2010-08-19 02:33:29
【问题描述】:

我是一个运行 Ubuntu 10.04 并尝试安装 rails 的 linux 菜鸟。我首先安装了 ruby​​,然后是 RVM,然后下载并安装了 ruby​​gems,然后安装了 rails。

Rails 似乎只有在命令前面有“sudo”时才会响应。如果我在终端中写“rails new test”,我会得到:

/usr/local/lib/site_ruby/1.8/rubygems.rb:779:in `report_activate_error': Could not find RubyGem rails (>= 0) (Gem::LoadError)
    from /usr/local/lib/site_ruby/1.8/rubygems.rb:214:in `activate'
    from /usr/local/lib/site_ruby/1.8/rubygems.rb:1082:in `gem'
    from /usr/bin/rails:18

如果我去终端写 'rails -v' 我会得到同样的结果:

   /usr/local/lib/site_ruby/1.8/rubygems.rb:779:in `report_activate_error': Could not find RubyGem rails (>= 0) (Gem::LoadError)
        from /usr/local/lib/site_ruby/1.8/rubygems.rb:214:in `activate'
        from /usr/local/lib/site_ruby/1.8/rubygems.rb:1082:in `gem'
        from /usr/bin/rails:18

如果我去终端并写“sudo rails -v”,我会得到以下信息: Rails 3.0.0.rc

“宝石环境”给了我这个:

RUBYGEMS VERSION: 1.3.7
  - RUBY VERSION: 1.9.2 (2010-07-11 patchlevel -1) [i686-linux]
  - INSTALLATION DIRECTORY: /home/josh/.rvm/gems/ruby-1.9.2-rc2@rails3tutorial
  - RUBY EXECUTABLE: /home/josh/.rvm/rubies/ruby-1.9.2-rc2/bin/ruby
  - EXECUTABLE DIRECTORY: /home/josh/.rvm/gems/ruby-1.9.2-rc2@rails3tutorial/bin

我怀疑我的路径设置不正确,但我不确定如何修复它。 有什么建议吗?

【问题讨论】:

    标签: ruby-on-rails ubuntu rvm


    【解决方案1】:

    我在全新安装 Ubuntu 10.10 时也遇到了这个问题……即使在安装了“$ rvm notes”记录的 rvm 和 ruby​​ 先决条件之后。

    似乎是“rvm”gem 安装无法找到系统 zlib 安装的问题。丹尼尔上面的评论是一个很好的评论 - 遗憾的是它没有被列为答案。

    所以我的解决方案是按照 Daniel 在https://rvm.beginrescueend.com/packages/zlib/ 中指出的说明进行操作。

    $ rvm pkg install zlib
    $ rvm remove 1.9.2
    $ rvm install 1.9.2
    

    第一个命令将 zlib 本地安装到您的 rvm 区域。 第二个命令删除 ruby​​ 1.9.2,第三个命令使用 rvm-local zlib 重新安装 ruby​​ 1.9.2。

    然后设置您的 ruby​​ 版本并安装 gem:

    $ rvm 使用 1.9.2
    $ gem install "随便"

    【讨论】:

    • 我必须使用以下变体:rvm install 1.9.2 --with-zlib-dir=$rvm_path/usr
    • 在继续安装 zlib 之前,我必须先删除 ruby​​ 平台
    【解决方案2】:

    我的猜测是您使用 sudo 安装了 gem(例如 sudo gem install rails)。使用 sudo 安装时,会忽略 RVM,使用系统 ruby​​。

    在使用 RVM 时,您真的不想使用 sudo 进行安装(请注意,有一个命令 rvmsudo,可以通过 sudo 运行您的 RVM 设置,但您确实很少会使用它)。从您的环境中可以看出,您的 gem 将存储在 /home/josh/.rvm/gems/ruby-1.9.2-rc2@rails3tutorial/gems 中,您不需要 root 权限即可安装。

    那就试试吧:

    gem install rails
    

    作为你自己,看看是否一切正常。

    【讨论】:

    • 谢谢,我刚刚尝试了“gem install rails”并收到了这个:错误:加载命令:安装(LoadError)没有要加载的文件--zlib错误:执行gem时...(NameError)未初始化的常量 Gem::Commands::InstallCommand 有什么想法吗?
    • 听起来你的机器上没有安装 zlib。这是 libssl 的依赖项,所以我建议执行 aptitude install openssl 然后重试
    • 感谢您的帮助...我运行了“aptitude install openssl”...我重新安装了 ruby​​gems 并运行了“gem update --system”并收到此错误:“错误:加载命令:更新( LoadError)没有要加载的文件--zlib”我也尝试了'gem install rails --version 3.0.0'并收到非常相似的“错误:加载命令:安装(LoadError)没有要加载的文件--zlib错误:执行 gem ... (NameError) 未初始化常量 Gem::Commands::InstallCommand" 错误:执行 gem ... (NameError) 未初始化常量 Gem::Commands::UpdateCommand" 有什么想法吗?
    • user424703 签出rvm.beginrescueend.com/packages/zlib 为我工作:-)
    【解决方案3】:

    如果您收到此警告,“错误:加载命令:更新 (LoadError) 没有要加载的此类文件 -- zlib”

    基本上,如果在您编译 ruby​​ 时 zlib 库不存在,您只需返回并安装该库,然后重新编译 ruby​​。

    所以试试这些步骤

    1. 卸载红宝石

      rvm 移除 ruby​​-1.9.2

    2. 安装必要的库

      sudo apt-get install build-essential libssl-dev libreadline5 libreadline5-dev zlib1g zlib1g-dev

    3. 重新安装红宝石

      rvm 安装 1.9.2

    4. 您可能希望将此版本的 ruby​​ 设置为默认版本

      rvm 使用 1.9.2 --default

    5. 为了安全起见,请关闭您当前打开的终端并打开一个新终端。你应该很高兴从这里开始。

    【讨论】:

      【解决方案4】:

      正如 Rob Di Marco 所述,您不能将 sudo gem install rails 与 RVM 一起使用(请参阅 RVM Documentation)。

      我实际上只是问了一个非常相似的问题。我最初使用 sudo gem 安装了 rails,当我尝试使用 RVM 安装旧版本的 rails 时遇到了这个问题。这是我的代码:

      rvm use 1.8.7
      rvm gemset create rails3.0.1
      rvm 1.8.7@rails3.0.1
      sudo gem install rails --version=3.0.1 #the *sudo* in this line is WRONG
      

      另一位用户(zetetic)建议使用以下命令卸载您的“sudo gem rails”:

      sudo gem uninstall rails
      

      然后在没有 sudo 的情况下再次安装 - gem install rails

      在我完成所有这些之后,我重试了我的原始代码并且它工作了,但这次没有 sudo:

      rvm use 1.8.7
      rvm gemset create rails3.0.1
      rvm 1.8.7@rails3.0.1
      gem install rails --version=3.0.1
      

      如果您尝试使用 RVM,上面的代码可能只与您相关,但要解决您的问题,请尝试卸载您的 sudo rails 并在不使用 sudo 的情况下重新安装。为我工作。祝你好运!

      【讨论】:

        【解决方案5】:

        解决办法是

        apt-get install build-essential libssl-dev libreadline5 libreadline5-dev zlib1g zlib1g-dev
        

        然后:

        rvm install ruby-1.9.2-p290
        rvm default 1.9.2
        

        【讨论】:

          【解决方案6】:

          不,我所有的 gem 都是在没有 sudo 的情况下安装的。

          这里有一些调试信息可能会有所帮助。

          rvm 1.9.2 --passenger之前的$PATH

          /home/kevin/.rvm/gems/ruby-1.9.2-p0/bin: /home/kevin/.rvm/gems/ruby-1.9.2-p0@global/bin: /home/kevin/.rvm/rubies/ruby-1.9.2-p0/bin:/home/kevin/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/ usr/bin:/sbin:/usr/游戏

          rvm 1.9.2 --passenger之后的$PATH

          /home/kevin/.rvm/gems/ruby-1.9.2-p0/bin: /bin:/home/kevin/.rvm/rubies/ruby-1.9.2-p0/bin:/home/kevin/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/ sbin:/usr/bin:/sbin:/bin:/usr/games

          这是我的 .bashrc 文件:http://pastebin.com/H9U3azAk

          【讨论】:

            【解决方案7】:

            如果你是通过源码安装

            ext/Setup and uncomment the zlib line
            
            $ ./configure
            $ make
            $ sudo make install
            
            $ ruby -v
            => ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]
            
            $ gem -v
            => 1.3.7
            

            【讨论】:

              【解决方案8】:
              【解决方案9】:
              1. 首先,安装必要的库

                sudo apt-get install build-essential libssl-dev libreadline5 libreadline5-dev zlib1g zlib1g-dev

              2. 然后,重新安装 ruby​​ 1.9.2

                rvm 重新安装 1.9.2 && rvm 使用 1.9.2

              【讨论】:

                猜你喜欢
                • 2012-01-14
                • 2013-05-13
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2012-06-25
                • 1970-01-01
                • 2013-08-09
                • 2012-02-10
                相关资源
                最近更新 更多