Techioz Blog

Rubyでバンドルをインストールできませんでした

概要

Ruby にバンドルをインストールしようとすると問題が発生します。 Gemfileを作成した後に更新しようとしました

私はこのコマンドを使用しました:

emna@tarek-Vostro-3902:~/Gemfile$ ls -l
total 32
drwxrwxr-x 2 emna emna 4096 Dec 28 13:11 bin
-rw-rw-r-- 1 emna emna 3238 Dec 28 13:11 CODE_OF_CONDUCT.md
-rw-rw-r-- 1 emna emna   92 Dec 28 13:11 Gemfile
-rw-rw-r-- 1 emna emna 1428 Dec 28 13:11 Gemfile.gemspec
drwxrwxr-x 3 emna emna 4096 Dec 28 13:11 lib
-rw-rw-r-- 1 emna emna  117 Dec 28 13:11 Rakefile
-rw-rw-r-- 1 emna emna 1400 Dec 28 13:11 README.md
drwxrwxr-x 2 emna emna 4096 Dec 28 13:11 spec
emna@tarek-Vostro-3902:~/Gemfile$ bundle update
The gemspec at /home/emna/Gemfile/Gemfile.gemspec is not valid. Please fix this gemspec.
The validation error was '"FIXME" or "TODO" is not an author'
emna@tarek-Vostro-3902:~/Gemfile$ echo 'gem "rspec"' >> Gemfile
emna@tarek-Vostro-3902:~/Gemfile$ bundle install
You have one or more invalid gemspecs that need to be fixed.
The gemspec at /home/emna/Gemfile/Gemfile.gemspec is not valid. Please fix this gemspec.
The validation error was '"FIXME" or "TODO" is not an author'
emna@tarek-Vostro-3902:~/Gemfile$ bundle exec rspec
bundler: command not found: rspec
Install missing gem executables with `bundle install`
emna@tarek-Vostro-3902:~/Gemfile$ ls
bin  CODE_OF_CONDUCT.md  Gemfile  Gemfile.gemspec  lib  Rakefile  README.md  spec

これは同じ質問の更新です。ファイルを追加しました

    # coding: utf-8
lib = File.expand_path('../lib', __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'Gemfile/version'

Gem::Specification.new do |spec|
  spec.name          = "Gemfile"
  spec.version       = Gemfile::VERSION
  spec.authors       = ["TODO: Write your name"]
  spec.email         = ["TODO: Write your email address"]

  spec.summary       = %q{TODO: Write a short summary, because Rubygems requires one.}
  spec.description   = %q{TODO: Write a longer description or delete this line.}
  spec.homepage      = "TODO: Put your gem's website or public repo URL here."

  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
  # to allow pushing to a single host or delete this section to allow pushing to any host.
  if spec.respond_to?(:metadata)
    spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
  else
    raise "RubyGems 2.0 or newer is required to protect against " \
      "public gem pushes."
  end

  spec.files         = `git ls-files -z`.split("\x0").reject do |f|
    f.match(%r{^(test|spec|features)/})
  end
  spec.bindir        = "exe"
  spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
  spec.require_paths = ["lib"]

  spec.add_development_dependency "bundler", "~> 1.13"
  spec.add_development_dependency "rake", "~> 10.0"
  spec.add_development_dependency "rspec", "~> 3.0"
end
~                                                                                                                                                                                 
~  

解決策

表示されたエラー メッセージの提案に従って、bundle gem … によって生成されたテンプレートを変更する必要があります。

The validation error was '"FIXME" or "TODO" is not an author'

ただし、選択したエディターで Gemfile.gemspec を開き、FIXME および/または TODO コンテンツを含めて行を修正します。

また、Ruby の世界では、宝石の名前をすべて小文字にする傾向があります (一方、あなたの名前は大文字の G です)。