как активировать или установить рейк по умолчанию? - PullRequest
9 голосов
/ 12 июля 2011

Я видел много

You have already activated rake 0.9.x, but your Gemfile requires rake 0.x.x

ошибок.

Конечно, они могут быть решены (временно или всегда) с помощью некоторых методов, таких как следующие.

bundle exec rake

Приведенный выше метод работает, но вы всегда должны набирать bundle exec.

Это также может быть решено с помощью

bundle update

Но обновление пакета также обновляет другие ваши драгоценные камни.

Некоторые говорят, что это может быть решено с помощью

gem uninstall unwanted_rake_version

Данежелательный рейк может быть установлен, но он по-прежнему помечен как активированный, что приводит к ошибке.

Одним из решений будет явное указание версии рейка в вашем Gemfile, но это не вопрос.Это как установить версию рейка по умолчанию или активировать эту конкретную версию в rvm или других типах установки ruby?

Ответы [ 3 ]

8 голосов
/ 12 июля 2011

Более новые версии рейка можно активировать, указав необязательный первый аргумент, то есть версию гема.

$ rake 0.9.2

В качестве альтернативы, если у вас установлена ​​более старая версия rake, вы можете обновить скрипт rake вручную, чтобы включить этот параметр (или указать любую конкретную версию, которую вы хотите).

Скрипт rake обычно находится в / usr / bin / rake (или ~ / .rvm / gems / ruby ​​- # {ruby-name} / rake, если используется rvm).И диктует версию их gem для загрузки перед разбором параметров.

В моей системе это выглядит так.

$ cat ~/.rvm/gems/ruby-1.9.2-p180/bin/rake

#!/home/tomcat/.rvm/rubies/ruby-1.9.2-p180/bin/ruby
#
# This file was generated by RubyGems.
#
# The application 'rake' is installed as part of a gem, and
# this file is here to facilitate running it.
#

require 'rubygems'

version = ">= 0"

if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
  version = $1
  ARGV.shift
end

gem 'rake', version
load Gem.bin_path('rake', 'rake', version)

Важный бит gem 'rake', version изменение version приведет к рейкудля конкретной версии system / rvm wide.

Для получения дополнительной информации Katz '1017 * article прекрасно объясняет, как двоичные файлы работают под rubygems

4 голосов
/ 19 февраля 2014

Когда я получаю эту ошибку, это обычно результат работы между проектами, которые зависят от разных версий рейка. Простое решение

gem uninstall rake

А затем в каталоге вашего проекта (при условии, что вы работаете с Bundler) просто

bundle
0 голосов
/ 24 июня 2014

Сначала я всегда удаляю rake, введите команду:

gem uninstall rake -v=version

, затем установите другую версию

gem install rake -v=version
...