Ошибка: Не удалось создать собственное расширение драгоценного камня при попытке загрузить Rubocop

когда я пробую "sudo установку драгоценного камня 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

Таким образом, я попробовал много решений, конкретно решения от https://stackoverflow.com/questions/22544754/failed-to-build-gem-native-extension-installing-compass (другой драгоценный камень, та же ошибка)

Я пытался переустановить RVM с "rvm, переустанавливают - запрещать-двоичный-файл 2.2.0", который требовал времени, но не зафиксировал его

затем я попробовал $ "sudo склонный - получают рубин-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.

Я также попробовал "обновление драгоценного камня - система", до которой я добираюсь...

Latest version currently installed. Aborting.

Любые предложения будут значительно цениться, поскольку я - общий новичок, и я застреваю.

13
задан 23 May 2017 в 05:39

3 ответа

Когда я ответил на это в 2017, я скептически относился к решению @SeanHammond, потому что драгоценный камень граблей уже, казалось, был установлен. Это, оказывается, было через пакет граблей Debian и их систему rubygems-интеграции. Установка драгоценного камня граблей снова, на г-на Hammond, работала на меня сегодня, когда это переопределило версию Debian, следовательно избежал базовой ошибки. Ну, сначала это сказало:

martind@balance:~$ sudo gem2.1 install --no-ri --no-rdoc rake
Fetching: rake-12.3.1.gem (100%)
ERROR:  While executing gem ... (TypeError)
    no implicit conversion of nil into String
martind@balance:~$ 

После того, как я подал заявку восходящая фиксация для сообщения об ошибке, в котором было сказано:

rake's executable "rake" conflicts with an unknown executable
Overwrite the executable? [yN]  n
ERROR:  Error installing rake:
    "rake" from rake conflicts with installed executable from 
martind@balance:~$ 

..., который привел меня успешно выполняться с:

martind@balance:~$ sudo gem2.1 install --no-ri --no-rdoc --format-executable rake
Successfully installed rake-12.3.1
1 gem installed
martind@balance:~$ 

Это достаточно, чтобы rubygems нашел обновленный двоичный файл:

martind@balance:~$ ruby2.1 -we 'puts(Gem.bin_path("rake", "rake"))'
/var/lib/gems/2.1.0/gems/rake-12.3.1/exe/rake
martind@balance:~$ ls -l /var/lib/gems/2.1.0/gems/rake-12.3.1/exe/rake
-rwxr-xr-x 1 root root 1182 Apr 17 15:03 /var/lib/gems/2.1.0/gems/rake-12.3.1/exe/rake
martind@balance:~$ 

решение @ShaunJackman работало на меня также. Это могло бы хорошо быть способом, которым Debian должен зафиксировать его, хотя я не оставил бы файлы в каталоге на моей машине, которую Debian мог бы позже хотеть изменить.

А менее болезненное обходное решение было установкой rake=/usr/bin/rake в среде, от которой я установил драгоценный камень, который я хотел:

martind@balance:~$ rake=/usr/bin/rake sudo gem2.1 install --no-ri --no-rdoc mediawiki_api
Fetching: unf-0.2.0.beta2.gem (100%)
Building native extensions.  This could take a while...
Successfully installed unf-0.2.0.beta2
Fetching: mediawiki_api-0.7.1.gem (100%)
Successfully installed mediawiki_api-0.7.1
2 gems installed
martind@balance:~$ 

..., как теперь отмечено в мой отчет об ошибках Debian . Вашему sudo, возможно, понадобилось бы - сохранять-ENV для прохождения через ту установку.

(В более ранней версии этого ответа, я утверждал, что "эквивалент sudo gem install rainbow решил его", но оказывается, что моя проблема не была эквивалентна. Моя проблема не была с драгоценным камнем, радугой и rubocop, но на самом деле с gem2.1, mediawiki-шлюз (или его преемник, mediawiki_api) и unf. Причина, что установка зависимости вручную сначала работала на мой случай, состояла в том, что gem2.1 имеет ошибку, посредством чего это предпочитает устанавливать предварительные версии как зависимости. Я подозреваю, из кода, а не прозы, что ошибка этот При выяснении установить сам unf он вместо этого, и справедливо, выбирает версию выпуска, та, которая просто, оказывается, использует путь выполнения кода ExtConfBuilder rubygem, а не его RakeBuilder один. Это не помогло бы исходному плакату с их проблемой радуги, поскольку они не получили предварительную версию. Извините за долгое отклонение, но возможно это поможет кому-то еще сталкивающемуся с подобной проблемой.)

2
ответ дан 23 November 2019 в 03:14

Я смог разрешить, что эта проблема с

sudo mkdir -p /usr/share/rubygems-integration/all/gems/rake-10.5.0/bin
sudo ln -s /usr/bin/rake /usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/

Видит эта фиксация на GitHub.

2
ответ дан 23 November 2019 в 03:14

Сделать 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 создает тот файл.

24
ответ дан 23 November 2019 в 03:14

Другие вопросы по тегам:

Похожие вопросы: