Вы уже активировали launchy 0.3.7, но для вашего Gemfile требуется launchy 0.4.0

#ruby-on-rails #rubygems

#ruby-on-rails #rubygems

Вопрос:

В проекте rails, который, как я знаю, работал совсем недавно, в пятницу, я внезапно получаю это сообщение при попытке выполнить какие-либо задачи rake:

 You have already activated launchy 0.3.7, but your Gemfile requires launchy 0.4.0. Consider using bundle exec.
  

Подумав, что это странно, я проверил свой Gemfile, я нигде не вызываю launchy (хотя он появляется в моем Gemfile.замок).

При запуске bundle show launchy он информирует меня о том, что я использую:

 Ruby192/lib/ruby/gems/1.9.1/gems/launchy-0.4.0
  

Я попытался запустить rake обновления пакета, повторно запустить bundle install и использовать как rake db: create, так и bundle exec rake db:create. Что изменилось?

Комментарии:

1. жестокое решение -> удалить gemfile. блокировка и установка пакета

Ответ №1:

Похоже, вы не используете RVM. Я бы настоятельно рекомендовал установить его.

Предполагая, что у вас установлена RVM и, например, Ruby 1.9.2-p180, я бы сделал следующее:

  1. создайте набор драгоценных камней my_project:

    rvm gemset create my_project

  2. внутри папки проекта создайте .rvmrc файл, содержащий следующую строку:

    rvm use 1.9.2-p180@my_project

  3. запустите cd . внутри каталога проекта и примите все запросы;
  4. установите bundler gem:

    gem install bundler

  5. запустите bundle команду в корне проекта.

Это должно сработать. В моем примере я настаиваю на использовании RVM, поскольку это изолирует все драгоценные камни вашего проекта от системных. Как только вы запустите bundle команду, Bundler будет управлять зависимостями за вас, поэтому, очевидно, нет необходимости явно указывать launchy gem в вашем Gemfile.

Ответ №2:

В вашем gemfile укажите точную версию launchy, которая вам нужна, и запустите bundle

Ответ №3:

Я полагаю, что launchy используется capybara или cucumber. Помимо выполнения gem uninstall launchy и переустановки вашего пакета, я бы рекомендовал явно добавить его в ваш Gemfile, чтобы избежать этой проблемы, поскольку здесь происходит что-то странное. Например:

 group :test do
  gem 'launcy', '=0.4.0'
end
  

Ответ №4:

open_gem Установлен ли он в вашей системе? Он автоматически загружается rubygems и требует запуска, что приводит к неприятным взаимодействиям с bundler. Попробуйте удалить его.

 sudo gem uninstall open_gem
  

Подробности смотрите в этом сообщении в блоге.