Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby绑定器权限问题_Ruby_Permissions_Rubygems_Bundler - Fatal编程技术网

Ruby绑定器权限问题

Ruby绑定器权限问题,ruby,permissions,rubygems,bundler,Ruby,Permissions,Rubygems,Bundler,因此,我确信我曾经出于绝望而安装了一个sudo bundle,现在我知道这是一个禁忌。但是现在,当我尝试运行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 dire

因此,我确信我曾经出于绝望而安装了一个
sudo bundle
,现在我知道这是一个禁忌。但是现在,当我尝试运行
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缓存

我的档案:

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安装中


谢谢。

也许可以尝试在所有内容上使用chmod,但看起来您需要以sudo身份运行它…不确定为什么这不是一个选项…

尝试触摸特定路径中的文件。我猜OSX对这些目录的保护比正常的方式多一点?我认为OSX支持ACL的文件系统,也许你必须看看那里

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

  • 使用sudo在系统范围内安装捆绑包。来自不同应用程序的gem冲突可能是一个问题
  • 使用bundle install--path bundle\u dir,它将在bundle\u dir中安装gems
  • 使用rvm(http://rvm.beginrescueend.com),此程序将允许您使用不同的ruby版本和不同的gem集

这是一个非常糟糕的建议。对所有系统目录进行chmoding是个坏主意,您需要使用sudo来访问它们。