когда я пытаюсь "sudo gem install rubocop", я получаю ...
Building native extensions. This could take a while...
ERROR: Error installing rubocop:
ERROR: Failed to build gem native extension.
current directory: /var/lib/gems/2.3.0/gems/rainbow-2.2.1/ext
/usr/bin/ruby2.3 mkrf_conf.rb
current directory: /var/lib/gems/2.3.0/gems/rainbow-2.2.1/ext
/usr/bin/ruby2.3 -rubygems /usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake RUBYARCHDIR=/var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/rainbow-2.2.1 RUBYLIBDIR=/var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/rainbow-2.2.1
/usr/bin/ruby2.3: No such file or directory -- /usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake (LoadError)
rake failed, exit code 1
Gem files will remain installed in /var/lib/gems/2.3.0/gems/rainbow-2.2.1 for inspection.
Results logged to /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/rainbow-2.2.1/gem_make.out
Поэтому я попробовал несколько решений, в частности, из /programming/22544754/failed-to-build-gem-native-extension-install-compass (другой драгоценный камень, та же ошибка)
Я попытался переустановить RVM с помощью «rvm reinstall --disable-binary 2.2.0», что заняло некоторое время, но не помогло
Затем я попытался $ "sudo apt-get install ruby-dev", который дает
Reading package lists... Done
Building dependency tree
Reading state information... Done
ruby-dev is already the newest version (1:2.3.0+1).
The following packages were automatically installed and are no longer required:
dkms linux-headers-4.4.0-53 linux-headers-4.4.0-53-generic
linux-image-4.4.0-53-generic linux-image-extra-4.4.0-53-generic
python-appindicator python-gconf python-gi python-glade2
python-gobject python-pexpect python-ptyprocess python-xdg
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 40 not upgraded.
Я также попробовал "gem update --system", в которую я попал ...
Latest version currently installed. Aborting.
Любые предложения будут с благодарностью, так как я полный нуб, и я застрял.
rake
установлено?Ответы:
Делай,
sudo gem install rake
а потом делайsudo gem install rubocop
снова, и это должно работать.Кажется, не имеет значения, что у вас установлена правильная версия рейка. Для меня
rake --version
сообщили,10.5.0
но я все еще получал то же сообщение об ошибке, что и вы. Глядя на сообщение об ошибке, он ищетrake
на определенном пути, а не где - нибудь на моемPATH
:/usr/bin/ruby2.3: No such file or directory -- /usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake (LoadError)
.which rake
отчеты/usr/local/bin/rake
, нет/usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake
. И на самом деле, как говорится в сообщении об ошибке, нет файла в/usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake
. Вероятно, это связано с тем,rake
что он былapt-get install
редактором, а неgem install
редактором.sudo gem install rake
создает этот файл.источник
Я смог решить эту проблему с
Смотрите этот коммит на GitHub .
источник
Когда я ответил на это в 2017 году, я скептически отнесся к решению @ SeanHammond, потому что, похоже, герб рейка уже установлен. Оказывается, это произошло благодаря пакету рейка Debian и его системе интеграции rubygems. Повторная установка Rake Gem, по словам мистера Хаммонда, работала для меня сегодня, так как она отвергала версию Debian, следовательно, избегала основной ошибки. Ну, во-первых, он сказал:
После того, как я применил вышестоящее исправление для отчета об ошибках, он сказал:
... что привело меня к успеху с:
Этого достаточно, чтобы rubygems нашел обновленный бинарный файл:
Решение @ ShaunJackman работало и для меня. Вполне возможно, что Debian должен это исправить, хотя я бы не хотел оставлять файлы в каталоге на моем компьютере, который впоследствии может захотеть изменить Debian.
Менее болезненный обходной путь - настройка
rake=/usr/bin/rake
среды, из которой я устанавливал драгоценный камень, который хотел:... как сейчас отмечено в моем отчете об ошибках Debian . Вашему sudo может понадобиться --preserve-env, чтобы пройти через этот параметр.
(В более ранней версии этого ответа я утверждал, что «эквивалент ее
sudo gem install rainbow
решения», но оказывается, что моя проблема не была эквивалентна. Моя проблема была не с гемом, радугой и рубокопом, а фактически с гемом 2.1, mediawiki- gateway (или его преемник, mediawiki_api) и unf. Причина, по которой установка зависимости сначала сработала вручную для моего случая, заключалась в том, что в gem2.1 есть ошибка, из-за которой он предпочитает устанавливать предварительные версии в качестве зависимостей. Я подозреваю, что из кода, а не из проза, что ошибка в этом одна, Когда его просят установить unf сам, он вместо этого и правильно выбирает версию выпуска, которая, как оказалось, использует путь кода ExtConfBuilder rubygem, а не RakeBuilder. Это не помогло бы оригинальному постеру с их проблемой радуги, поскольку они не получили предварительную версию. Извините за длительное отступление, но, возможно, это поможет кому-то еще столкнуться с подобной проблемой.)источник
rake=rake
работал