#ruby-on-rails #ruby
Вопрос:
Я пытаюсь установить приложение Rails 5 на свой Macbook Air с чипом M1. Это приложение использует драгоценный камень под названием potracer
.
После этого $ bundle install
я получаю ошибку:
Installing potracer 1.1.4 with native extensions Gem::Ext::BuildError: ERROR: Failed to build gem native extension. current directory: /Users/user/.rvm/gems/ruby-2.7.2/gems/potracer-1.1.4/ext/potracer /Users/user/.rvm/rubies/ruby-2.7.2/bin/ruby -I /Users/user/.rvm/rubies/ruby-2.7.2/lib/ruby/2.7.0 -r ./siteconf20211025-1533-nnxnj9.rb extconf.rb checking for potracelib.h... no potracelib.h not found *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/Users/user/.rvm/rubies/ruby-2.7.2/bin/$(RUBY_BASE_NAME) --with-potrace-dir --without-potrace-dir --with-potrace-include --without-potrace-include=${potrace-dir}/include --with-potrace-lib --without-potrace-lib=${potrace-dir}/lib To see why this extension failed to compile, please check the mkmf.log which can be found here: /Users/user/.rvm/gems/ruby-2.7.2/extensions/arm64-darwin-20/2.7.0/potracer-1.1.4/mkmf.log extconf failed, exit code 1 Gem files will remain installed in /Users/user/.rvm/gems/ruby-2.7.2/gems/potracer-1.1.4 for inspection. Results logged to /Users/user/.rvm/gems/ruby-2.7.2/extensions/arm64-darwin-20/2.7.0/potracer-1.1.4/gem_make.out An error occurred while installing potracer (1.1.4), and Bundler cannot continue. Make sure that `gem install potracer -v '1.1.4' --source 'https://rubygems.org/'` succeeds before bundling. In Gemfile: potracer
У меня были другие проблемы с установкой другого приложения rails с чипом M1, но я нашел обходные пути, но не в этом случае.
Идеи о том, как это решить?
Ответ №1:
Перед этим вам необходимо переустановить potrace loccaly. Установка, по-видимому, не завершена.
вам потребуется установить библиотеку/заголовки. В зависимости от вашей платформы это будет что-то вроде libpotrace и libpitrace-dev.
Вы бы установили их через homebrew, apt, dnf и т. Д.
Выполнение potrace будет прервано, если вы не получите файл potrace.h локально
прервать potracelib.h не найден», если только find_header(«potracelib.h»)
require 'mkmf' RbConfig::MAKEFILE_CONFIG['CC'] = ENV['CC'] if ENV['CC'] LIBDIR = RbConfig::CONFIG['libdir'] INCLUDEDIR = RbConfig::CONFIG['includedir'] HEADER_DIRS = ['/opt/local/include', '/usr/local/include', INCLUDEDIR, '/usr/include'] LIB_DIRS = ['/opt/local/lib', '/usr/local/lib', LIBDIR, '/usr/lib'] dir_config('potrace', HEADER_DIRS, LIB_DIRS) abort 'potracelib.h not found' unless find_header('potracelib.h') abort 'lib potrace not found' unless find_library('potrace', 'potrace_version') create_header create_makefile('potracer/potracer')