Примечание:
Я задал этот вопрос, когда получил неожиданные сообщения при выполнении bundle install
с гемом factory_girl
с использованием Ubuntu 11.10.Будучи нубом, я имел ... и до сих пор не знаю ... что происходит.Обновление ниже пытается обрисовать в общих чертах, что я сделал, чтобы в конечном счете избавиться от сообщений.Я оставляю этот вопрос с чуть более подходящей строкой заголовка на тот случай, если она может быть кому-то полезна.
Я смотрю на README.md Factory Girl и вижу:
Install
gem install factory_girl
or add the following line to Gemfile:
gem 'factory_girl'
and run bundle install from your shell.
Supported Ruby versions
The Factory Girl 3.x series supports Ruby 1.9.x.
For older versions of Ruby, please use the Factory Girl 2.x series.
Поскольку я сейчас использую
Rails 3.1.0
и
ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux]
, я добавляю gem 'factory_girl'
в свой Gemfile и делаю bundle update
.
Но затем, продолжая, я открываю файл Getting Started.md и читаю
Update Your Gemfile
If you're using Rails, you'll need to change
the required version of factory_girl_rails:
gem "factory_girl_rails", "~> 2.0"
If you're not using Rails, you'll just have to
change the required version of factory_girl:
gem "factory_girl", "~> 3.0"
Once your Gemfile is updated, you'll want to update your bundle.
ОК, хорошо.Я удаляю gem 'factory_girl'
из своего Gemfile и вместо этого добавляю
gem "factory_girl_rails", "~> 2.0"
.
, а затем снова пытаюсь bundle update
.На этот раз без радости.
$bundle install
Invalid gemspec in [/usr/local/lib/ruby/gems/1.9.1/specifications/
factory_girl_rails-2.0.0.gemspec]: Illformed requirement
["# 3.0.7"]
Invalid gemspec in [/usr/local/lib/ruby/gems/1.9.1/specifications/
factory_girl_rails-2.0.0.gemspec]: Illformed requirement
["# 3.0.7"]
Fetching source index for http://rubygems.org/
Using rake (0.9.2.2)
Using ZenTest (4.7.0)
... a bunch of "Using" lines omitted for brevity ...
Using deepopenstruct (0.1.2)
Using factory_girl (3.0.0)
Installing factory_girl_rails (2.0.0) Invalid gemspec in
[/usr/local/lib/ruby/gems/1.9.1/specifications/factory_girl_rails-2.0.0.gemspec]:
Illformed requirement ["# 3.0.7"]
Using haml (3.1.4)
Using jquery-rails (1.0.19)
... a bunch of "Using" lines omitted for brevity ...
Using uglifier (1.2.4)
Your bundle is complete! Use `bundle show [gemname]` to see where a
bundled gem is installed.
Так что теперь я задаюсь вопросом (1) почему, следуя инструкциям в README, очевидно, не работает и (2) что я должен сделать с моим Gemfile, чтобы получитьFactory Girl улыбается и продуктивно?
Обновление
Хотя получение сообщений об ошибках, которые я не понимаю, вызывает разочарование, избавление от них, но не совсем уверенный Что Я сделал, чтобы "исправить" вещи также менее особенным.О, хорошо.
Честно говоря, хотя я и использовал пакет, я не знал, в чем разница между gem
, rvm
и bundle
, и я не понимал, что такое каждая командадолжен делать.Я думаю, что эта запись в блоге, которую я нашел через Google, несколько помогла в этом:
RVM и Bundler за пять секунд
Думая, что rvm и bundle должны автоматизировать управление группойдрагоценные камни, в то время как gem
просто управляет драгоценными камнями, я посмотрел на команды драгоценных камней.
Я пытался gem check
, который IIRC ничего не сделал.Затем я попытался gem cleanup
, который вернулся с длинным списком драгоценных камней, которые он хотел удалить.Полагая, что я мог (вероятно) вернуться туда, где мне нужно было, используя bundle install
, я позволил ему выполнить деинсталляцию.(Хотя мне пришлось использовать sudo gem cleanup
, потому что у меня не было разрешения на запись в некоторые из задействованных каталогов).
После этого gem check
и gem cleanup
вернулись чистыми.Тем не менее, bundle check
вернуло:
The following gems are missing
* activesupport (3.1.0)
* activemodel (3.1.0)
* rack-cache (1.0.3)
* actionpack (3.1.0)
Install missing gems with `bundle install`
Итак, я выполнил оба bundle install
с последующим (почему нет?) bundle update
.Это установило камни, перечисленные выше, без проблем.В частности, на этот раз я не получил Invalid gemspec
или любые другие сообщения об ошибках.(Ура!)
Конечно, bundle update
ничего не сделал, поскольку, честно говоря, я ожидал этого.
Так что, хотя я до сих пор не уверен, что произошло, первоначальная причинамой вопрос был своего рода, сорта решен.
Я оставлю этот вопрос без ответа на неделю или около того, чтобы посмотреть, не хочет ли кто-нибудь еще оставить какие-либо комментарии.После этого, если никто не даст более информативный ответ, я думаю, я просто сам "отвечу" на этот вопрос, чтобы закрыть его.
Спасибо всем, кто помог мне подтолкнуть к чистому набору драгоценных камней.