ОШИБКА: Не удалось создать собственное расширение gem. potracelib.h не найден с чипом M1

#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')  

Источник: https://github.com/kennyp/potracer/blob/b67d3ff6a1ae672ccc6701fa5245fa532b461ef3/ext/potracer/extconf.rb