耙安装失败,但宝石安装工作正常,任何想法为什么? [英] rake install fails but gem install works fine, any idea why?

查看:125
本文介绍了耙安装失败,但宝石安装工作正常,任何想法为什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问题:



我有这个宝石,我正在研究。在尝试在本地安装它来执行一些测试时,在构建gem后, rake install 失败。 Rake建议我为内置的gem运行 gem install 来进行调试。令人惊讶的是, gem install pkg / my_gem-xyzgem 就像是一个魅力!



任何想法为什么?



一些细节:

rake版本:10.0.3

使用Bundler创建的Gem版本:1.2.1



gemspec的内容:

  $ LOAD_PATH.unshift(lib)除非$ LOAD_PATH.include?(lib)
需要'my_gem / version'

Gem :: Specification.new do | gem |
gem.name =mygem
gem.version = MyGem :: VERSION
gem.authors = [Omar Abdel-Wahab]
gem.email = [me @ example.com]
gem.description =%q {bla bla bla}
gem.summary =%q {bla bla bla}
gem.homepage =http:// github .com / foobar /

gem.files =`git ls-files`.split($ /)
gem.executables = gem.files.grep(%r {^ bin / })。map {| f | File.basename(f)}
gem.test_files = gem.files.grep(%r {^(test | spec | features)/})
gem.require_paths = [lib]

gem.add_dependencyrails,> = 3.1
gem.add_dependencyjquery-rails
gem.add_dependencytwitter-bootstrap-rails,> = 2.1.0

gem.add_development_dependencybundler,> = 1.0.0
gem.add_development_dependencyrspec,〜> 2.3
gem。 add_development_dependencysqlite3-ruby
end

> rake install

 〜/ Projects / Github / my_gem%rake -vt install 
**调用install(first_time)
**执行安装
my_gem 0.0.1内置到pkg / my_gem-0.0.1.gem
rake中止!
无法安装gem,运行`gem install /Users/owahab/Projects/Github/my_gem/pkg/my_gem-0.0.1.gem'以获得更详细的输出
/Users/owahab/.rvm /gems/ruby-1.9.3-p286/gems/bundler-1.2.1/lib/bundler/gem_helper.rb:68:in`install_gem'
/Users/owahab/.rvm/gems/ruby-1.9 .3-p286 / gems / bundler-1.2.1 / lib / bundler / gem_helper.rb:43:在`block in install'中
/Users/owahab/.rvm/gems/ruby-1.9.3-p286 /gems/rake-10.0.3/lib/rake/task.rb:228:in`call'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0 .3 / lib / rake / task.rb:228:在`block in execute'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib /rake/task.rb:223:in`each'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb :223:在`execute'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:166:in`block in invoke_with_call_chain'
/Users/owahab/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/monitor.rb:211:in`mon_synchronize'
/ Users / owahab / .RV在`invoke_with_call_chain'
/Users/owahab/.rvm/gems/ruby- 1.9.3-p286 / gems / rake-10.0.3 / lib / rake / task.rb:152:在`invoke'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/ gems / rake-10.0.3 / lib / rake / application.rb:143:在`invoke_task'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0。 3 / lib / rake / application.rb:101:在'block(2 levels)in top_level'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0。 3 / lib / rake / application.rb:101:在`each'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/ application.rb:101:在`block in top_level'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb: 110:`run_with_threads'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:95:in`top_level'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:73:in`block in run'
/Users/owahab/.rvm/gems/ ruby-1.9.3-p286 / gems / rake-10.0.3 / lib / rake / application.rb:160:在`standard_exception_handling'
/Users/owahab/.rvm/gems/ruby-1.9.3- p286 / gems / rake-10.0.3 / lib / rake / application.rb:70:在`run'中
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake- 10.0.3 / bin / rake:33:在< top(required)>'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/bin/rake:19:in `load'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/bin/rake:19:in`< main>'
/Users/owahab/.rvm/ gem / ruby​​-1.9.3-p286 / bin / ruby​​_noexec_wrapper:14:在`eval'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/bin/ruby_noexec_wrapper:14:in` < main>'
任务:TOP =>安装

输出从 rake build 然后 gem install

 〜/ Projects / Github / rails_autocomplete%rake build& &安培; gem install pkg / my_gem-0.0.1.gem 
my_gem 0.0.1内置到pkg / my_gem-0.0.1.gem
成功安装my_gem-0.0.1
1安装了gem
为my_gem-0.0.1安装ri文档...
为my_gem-0.0.1构建YARD(yri)索引...
为my_gem-0.0.1 ... $安装RDoc文档b $ b


解决方案

基于问题的评论线索,许可问题。调试Bundler的 gem_helper.rb 文件显示了这一点:
$ b


错误:执行gem时。 ..(Errno :: EACCES)权限被拒绝 - /Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/i18n-0.6.1/ci/Gemfile.no-rails


一些gem已经以root身份安装。删除它们解决了这个问题。


The problem:

I have this gem that I am working on. While trying to install it locally to do some tests, rake install fails after building the gem. Rake suggested that I run gem install for the built gem to debug. Surprisingly, gem install pkg/my_gem-x.y.z.gem works like a charm!

Any idea why?

Some details:

rake version: 10.0.3

Gem created using bundler version: 1.2.1

Contents of gemspec:

lib = File.expand_path('../lib', __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'my_gem/version'

Gem::Specification.new do |gem|
  gem.name          = "mygem"
  gem.version       = MyGem::VERSION
  gem.authors       = ["Omar Abdel-Wahab"]
  gem.email         = ["me@example.com"]
  gem.description   = %q{bla bla bla}
  gem.summary       = %q{bla bla bla}
  gem.homepage      = "http://github.com/foobar/"

  gem.files         = `git ls-files`.split($/)
  gem.executables   = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
  gem.test_files    = gem.files.grep(%r{^(test|spec|features)/})
  gem.require_paths = ["lib"]

  gem.add_dependency "rails", ">= 3.1"
  gem.add_dependency "jquery-rails"
  gem.add_dependency "twitter-bootstrap-rails", ">= 2.1.0"

  gem.add_development_dependency "bundler", ">= 1.0.0"
  gem.add_development_dependency "rspec", "~> 2.3"
  gem.add_development_dependency "sqlite3-ruby"
end

Output from rake install:

~/Projects/Github/my_gem% rake -vt install
** Invoke install (first_time)
** Execute install
my_gem 0.0.1 built to pkg/my_gem-0.0.1.gem
rake aborted!
Couldn't install gem, run `gem install /Users/owahab/Projects/Github/my_gem/pkg/my_gem-0.0.1.gem' for more detailed output
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/bundler-1.2.1/lib/bundler/gem_helper.rb:68:in `install_gem'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/bundler-1.2.1/lib/bundler/gem_helper.rb:43:in `block in install'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:228:in `call'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:228:in `block in execute'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:223:in `each'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:223:in `execute'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:166:in `block in invoke_with_call_chain'
/Users/owahab/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:159:in `invoke_with_call_chain'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task.rb:152:in `invoke'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:143:in `invoke_task'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:101:in `block (2 levels) in top_level'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:101:in `each'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:101:in `block in top_level'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:110:in `run_with_threads'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:95:in `top_level'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:73:in `block in run'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:160:in `standard_exception_handling'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:70:in `run'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/bin/rake:33:in `<top (required)>'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/bin/rake:19:in `load'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/bin/rake:19:in `<main>'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/bin/ruby_noexec_wrapper:14:in `eval'
/Users/owahab/.rvm/gems/ruby-1.9.3-p286/bin/ruby_noexec_wrapper:14:in `<main>'
Tasks: TOP => install

Output from rake build then gem install:

~/Projects/Github/rails_autocomplete% rake build && gem install pkg/my_gem-0.0.1.gem
my_gem 0.0.1 built to pkg/my_gem-0.0.1.gem
Successfully installed my_gem-0.0.1
1 gem installed
Installing ri documentation for my_gem-0.0.1...
Building YARD (yri) index for my_gem-0.0.1...
Installing RDoc documentation for my_gem-0.0.1...

解决方案

Based on the comment thread on the question, it was a permission problem. Debugging Bundler's gem_helper.rb file revealed this:

ERROR: While executing gem ... (Errno::EACCES) Permission denied - /Users/owahab/.rvm/gems/ruby-1.9.3-p286/gems/i18n-0.6.1/ci/Gemfile.no-rails

Some gems had been installed as root. Removing them solved the problem.

这篇关于耙安装失败,但宝石安装工作正常,任何想法为什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆