【问题标题】:Rails 3.2 - installation new appRails 3.2 - 安装新应用
【发布时间】:2012-03-12 13:07:29
【问题描述】:

我第一次安装基于 PostgreSQL 数据库的 RoR 应用程序并在运行命令 rails new psql_app -d postgresql 后遇到以下问题:

      ...
      create  vendor/assets/javascripts/.gitkeep
      create  vendor/assets/stylesheets
      create  vendor/assets/stylesheets/.gitkeep
      create  vendor/plugins
      create  vendor/plugins/.gitkeep
         run  bundle install
/Users/adam/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/fileutils.rb:243:in `mkdir': Permission denied - /Users/adam/.gem/specs/rubygems.org%443 (Errno::EACCES)
    from /Users/adam/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/fileutils.rb:243:in `fu_mkdir'
    from /Users/adam/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/fileutils.rb:217:in `block (2 levels) in mkdir_p'
    from /Users/adam/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/fileutils.rb:215:in `reverse_each'
    from /Users/adam/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/fileutils.rb:215:in `block in mkdir_p'
    from /Users/adam/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/fileutils.rb:201:in `each'
    from /Users/adam/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/fileutils.rb:201:in `mkdir_p'
    from /Users/adam/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/spec_fetcher.rb:125:in `fetch_spec'
    from /Users/adam/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/remote_specification.rb:47:in `_remote_specification'
    from /Users/adam/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/remote_specification.rb:53:in `method_missing'
    from /Users/adam/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/resolver.rb:101:in `block in __dependencies'
    ....

我也尝试重新设置与 PostgreSQL 数据库的连接,但没有成功...仍然收到此错误。当我尝试使用 MySQL 数据库创建新应用时,我没有收到此错误。

【问题讨论】:

    标签: ruby database ruby-on-rails-3 postgresql bundle-install


    【解决方案1】:

    这是捆绑程序无法写入您的 rvm 文件夹。我希望它与 Mysql 一起使用的原因是已经安装了适当的 gem,并且可能是使用 sudo 安装的,现在您正尝试以当前用户 adam 的身份运行 rails new

    您可以使用sudo rails new psql_app -d postgresql,或者您可以修复~/.gem 目录中的权限。为此,您可能可以安全地键入:

    sudo chown -R adam ~/.gem

    这应该让您在不使用 sudo 的情况下安装 gem。

    【讨论】:

    • 这里最重要的事情是,如果您已将 RVM 安装到您的主目录中(您应该这样做),那么不要使用 sudo 安装 gem。
    • 我想在不以最佳方式使用 sudo 的情况下解决这个问题。我尝试通过您提到的命令设置权限,但出现错误Operation not permitted
    • 由于您已经使用 sudo 命令(或作为 root)安装了 gems(或可能是 rvm),因此您需要成为 root 才能修复权限。你应该运行sudo chown -R adam ~/.gem。我已经编辑了我的答案以反映这一点。
    • gems,rvm 位于~/.rvm 下,所以@user984621 应该输入sudo chown -R adam ~/.rvm
    • 我不得不承认我已经切换到 rbenv 以避免 gemset 的疯狂!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 2012-12-07
    • 1970-01-01
    • 2013-02-25
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    相关资源
    最近更新 更多