Установка Rails-комплекта не работает из-за ошибки версии json - PullRequest
0 голосов
/ 09 февраля 2019

Я просто хотел конвертировать из ImageMagick v7 в ImageMagick v6.при этом произошла эта ошибка.

установка пакета не работает правильно.

Похоже, что версия json - это что-то не так.

Как мне исправить эту ошибку?

Среда ниже

  1. ruby ​​2.3.1p112 (2016-04-26 редакция 54768) [x86_64-darwin17]
  2. Rails -v (не удалось найти гем) (поскольку установка пакета не работает)
  3. json list / json (по умолчанию: 1.8.3) multi_json (1.13.1, 1.11.2, 1.11.0)
  4. Bundler версии 1.16.4
  5. Mac Mojave 10.14

, когда я делаю пакетную установку на терминале, тогда я получаю эту ошибку

Fetching gem metadata from https://rubygems.org/........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies.......
Using rake 12.3.2
Using concurrent-ruby 1.1.4
Using i18n 0.9.5
Fetching json 1.8.6
Installing json 1.8.6 with native extensions
Errno::EPERM: Operation not permitted @ chmod_internal -
/Users/***/projects/***/vendor/bundle/ruby/2.3.0/gems/json-1.8.6/tests/test_json.rb
An error occurred while installing json (1.8.6), and Bundler cannot continue.
Make sure that `gem install json -v '1.8.6' --source 
'https://rubygems.org/'` succeeds before bundling.

In Gemfile:
rails was resolved to 4.2.6, which depends on
actionmailer was resolved to 4.2.6, which depends on
  actionpack was resolved to 4.2.6, which depends on
    actionview was resolved to 4.2.6, which depends on
      rails-dom-testing was resolved to 1.0.9, which depends on
        rails-deprecated_sanitizer was resolved to 1.0.3, which depends on
          activesupport was resolved to 4.2.6, which depends on
            json

Iпопытался сделать так, потому что в сообщении об ошибке написано: Убедитесь, что
gem install json -v '1.8.6' --source 'https://rubygems.org/' успешно, прежде чем связывать

, но результат показывает, как это

ERROR:  While executing gem ... (Errno::EPERM)
Operation not permitted @ chmod_internal - /Users/***/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/json-1.8.6/tests/test_json.rb

Я не могу понять это заявление об ошибке

Errno::EPERM: Operation not permitted @ chmod_internal -

Кроме того, я много смотрел в глаза, затем обновляю commandlinetool, следуйте этому https://howchoo.com/g/m2u0mmuwzda/macos-mojave-fix-invalid-active-developer-path

, затем я снова сделал эту команду,

sudo gem install json -v '1.8.6' --source 'https://rubygems.org/'

затем, яТак получилось.

Building native extensions. This could take a while...
Successfully installed json-1.8.6
Parsing documentation for json-1.8.6
Installing ri documentation for json-1.8.6
Done installing documentation for json after 1 seconds
1 gem installed

Но, если я сделаю установку пакета, все равно не будет работать: они показывают ту же ошибку.

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Я повторяю рекомендацию @Danilo Cabello начать все заново, если вы можете.У меня просто есть несколько других идей по устранению неисправностей:

Тот факт, что ваш пакет устанавливает гемы в /vendor/bundle, означает, что в какой-то момент вы должны указать путь с bundle install --path vendor/bundle, так как @mogbee ссылается на,Этот флаг пути будет загружать файлы, связанные с вашими драгоценными камнями, в vendor/bundle вместо вашего системного местоположения драгоценных камней.Вы могли бы сделать это, если вы пытаетесь отделить гемы проекта от любого другого проекта, но если нет, вам нужно будет обновить путь к гемам вашего компоновщика.

Для этого сначала проверьте наличие проблем, запустив bundle doctor.Если проблем не обнаружено, проверьте конфигурацию вашего пакета с помощью bundle env.Убедитесь, что ваш RubyGems Gem Home и Gem Path проложены через .rbenv, поэтому они должны совпадать и выглядеть как /Users/***/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0.Если они не совпадают, выполните команду rbenv-doctor, указанную ниже, чтобы убедиться, что ваша установка rbenv правильно экспортировала путь.

Если вывод bundle env говорит о том, что вы на самом деле используете более старую версию компоновщика (старше 1.16.4), я бы определенно обновил и рекомендовал бы версию 1.17.3 как @Danilo Cabelloсделал.

Во-вторых, я бы запустил команду rbenv-doctor curl, чтобы проверить состояние вашей установки rbenv: curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash (https://github.com/rbenv/rbenv-installer#rbenv-doctor).

В-третьих, в зависимости от вывода ls -l вВ папке вашего проекта вы также можете рекурсивно изменить владельца / группу для своей папки ~/.rbenv, чтобы убедиться, что все принадлежит вам, а не root (https://superuser.com/questions/260925/how-can-i-make-chown-work-recursively/260939#260939)

0 голосов
/ 09 февраля 2019

Моя рекомендация, если возможно, начать все сначала.Возможно, ваш rbenv был установлен неправильно, попробуйте переустановить его, я предлагаю использовать brew install rbenv https://github.com/rbenv/rbenv#homebrew-on-macos

Убедитесь, что добавили eval "$(rbenv init -)" к вашему ~/.bash_profile, затем откройте новый терминал.

Перейдите в каталог проекта и установите нужную версию Ruby: rbenv install 2.3.1

Вы можете убедиться, что используете эту версию, введя rbenv use 2.3.1 и ruby --version.

Сейчас.установить пакет для этой версии Ruby, я предлагаю сейчас 1.17.3 (последняя версия до 2.0.1) gem install bundler -v '1.17.3'.

Вы должны быть готовы к bundle install.

Наиболее распространеннымСценарий, который я вижу для сообщения Installing ... with native extensions, приводящего к ошибкам, обычно связан с отсутствием двоичных файлов, заголовочных файлов и кода, связанного с C, для создания этого собственного расширения, в вашем случае проблема связана с разрешениями, поэтому я предлагаю некоторыесвежая установка.

...