Ruby Bundler 权限问题

标签 ruby permissions rubygems bundler

所以,我敢肯定,我曾经出于绝望而执行了 sudo bundle install,现在我明白这是不行的。但是现在,当我尝试运行 bundle install 时,出现以下错误:

Installing culerity (0.2.12) /Library/Ruby/Site/1.8/rubygems/installer.rb:294:in `generate_bin': You don't have write permissions into the /Library/Ruby/Gems/1.8/bin directory. (Gem::FilePermissionError)
    from /Library/Ruby/Site/1.8/rubygems/installer.rb:196:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.0.rc.6/lib/bundler/source.rb:100:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.0.rc.6/lib/bundler/installer.rb:55:in `run'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.0.rc.6/lib/bundler/spec_set.rb:12:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.0.rc.6/lib/bundler/spec_set.rb:12:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.0.rc.6/lib/bundler/installer.rb:44:in `run'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.0.rc.6/lib/bundler/installer.rb:8:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.0.rc.6/lib/bundler/cli.rb:217:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.0.rc.6/lib/bundler/vendor/thor/task.rb:22:in `send'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.0.rc.6/lib/bundler/vendor/thor/task.rb:22:in `run'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.0.rc.6/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.0.rc.6/lib/bundler/vendor/thor.rb:246:in `dispatch'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.0.rc.6/lib/bundler/vendor/thor/base.rb:389:in `start'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.0.rc.6/bin/bundle:13
    from /usr/bin/bundle:19:in `load'
    from /usr/bin/bundle:19

我已经尝试删除 ~/.bundle ~/.gem .bundle Gemfile.lock 中的所有内容以及/Library/Ruby (OSX 10.6) 中对 culerity 或 capybara 的任何引用。我还检查以确保我在这个项目中的所有文件都正确设置了权限(不是 root)。我还清除了 gem 缓存。

我的 gem 文件:

source 'http://rubygems.org'

gem 'rails', '3.0.0.rc2'

# Bundle edge Rails instead:
#gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'pg'

# Use unicorn as the web server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
gem 'ruby-debug'

# Bundle the extra gems:
# gem 'bj'
# gem 'nokogiri', '1.4.1'
# gem 'sqlite3-ruby', :require => 'sqlite3'
# gem 'aws-s3', :require => 'aws/s3'

# Bundle gems for certain environments:
# gem 'rspec', :group => :test
# group :test do
#   gem 'webrat'
# end

gem 'haml', '3.0.15'
gem 'mogli', '0.0.13' #, :path => "~/Sites/mogli"
gem 'facebooker2', '0.0.4'
gem 'geokit'
gem 'acts_as_restful_list'
gem 'hoptoad_notifier'

group :development, :test do
  gem "rspec-rails", '2.0.0.beta.19'
  gem 'factory_girl_rails'
  gem 'capybara', '0.3.9'
  gem 'database_cleaner'
  gem 'cucumber-rails', '0.3.2'
  gem 'cucumber', '0.8.5'
  gem 'spork'
  gem 'launchy'    # So you can do Then show me the page
end

另外,我的系统上有 rvm,但我在这个项目中使用系统 ruby​​。

关于导致权限问题的原因有什么想法吗?当然,我不会被 sudo bundle install 困住。

谢谢。

最佳答案

看起来你使用的是系统的ruby。您有几个选择:

  • 使用 sudo 在整个系统范围内安装您的 bundle 软件。这可能是来自不同应用程序的冲突 gem 的问题。
  • 使用 bundle install --path bundle_dir,这将安装 bundle_dir 中的 gem
  • 使用 rvm (http://rvm.beginrescueend.com),此程序将允许您使用不同的 ruby​​ 版本和不同的 gem 集。

关于Ruby Bundler 权限问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3567394/

相关文章:

ruby-on-rails - 如何检测浏览器类型及其版本

ruby - Hpricot 中使用的(例如)除数表示法是什么?

Ruby - 在下载完成之前保存文件部分

python - 当连接字符串中没有提供用户和密码时,pyodbc 从哪里获取用户和密码

java - Java 6 中的权限和 File.renameTo 奇怪行为

ruby - 如何使用 vagrant 1.7.2 在 Windows 7 x64 上 vagrant up(使用 puphpet)?

安卓 "No content provider found or permission revoke"与安卓 4

ruby-on-rails - ruby on rails 5.1 错误与设计 gem

macos - RubyMine 3.2 在 MacOS Lion 上找不到 libmysqlclient.18.dylib

c - Memcached ruby​​gem + Rlibmemcached 参数错误与 memcache_mget()