Я пытаюсь установить Ruby (3.2.0) (и Rails [7.0.4]) на Intel Mac (OS 12.6). У меня проблемы с sqlite3 — неудивительно. Мое текущее сообщение об ошибке таково:
конфигурация пакета для /usr/local/lib/ruby/gems/3.2.0/gems/sqlite3-1.5.4/ports/x86_64-apple-darwin21.6.0/sqlite3/3.40.0/lib/pkgconfig/sqlite3.pc не найдено
Когда я ввожу gem install sqlite3, я получаю следующее уродливое сообщение об ошибке:
Building native extensions. This could take a while...
ERROR: Error installing sqlite3:
ERROR: Failed to build gem native extension.
current directory: /usr/local/lib/ruby/gems/3.2.0/gems/sqlite3-1.5.4/ext/sqlite3
/usr/local/opt/ruby/bin/ruby -I /usr/local/lib/ruby/site_ruby/3.2.0 extconf.rb
Building sqlite3-ruby using packaged sqlite3.
Extracting sqlite-autoconf-3400000.tar.gz into tmp/x86_64-apple-darwin21.6.0/ports/sqlite3/3.40.0... OK
Running 'configure' for sqlite3 3.40.0... OK
Running 'compile' for sqlite3 3.40.0... OK
Running 'install' for sqlite3 3.40.0... OK
Activating sqlite3 3.40.0 (from /usr/local/lib/ruby/gems/3.2.0/gems/sqlite3-1.5.4/ports/x86_64-apple-darwin21.6.0/sqlite3/3.40.0)...
Could not configure the build properly (pkg_config). Please install either the `pkg-config` utility or the `pkg-config` rubygem.
*** 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:
[вставьте длинный список вариантов...]
To see why this extension failed to compile, please check the mkmf.log which can be found here:
/usr/local/lib/ruby/gems/3.2.0/extensions/x86_64-darwin-21/3.2.0/sqlite3-1.5.4/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in /usr/local/lib/ruby/gems/3.2.0/gems/sqlite3-1.5.4 for inspection.
Results logged to /usr/local/lib/ruby/gems/3.2.0/extensions/x86_64-darwin-21/3.2.0/sqlite3-1.5.4/gem_make.out
Я прошел через множество итераций решений, найденных в Интернете (изменение разрешений, установка pkg-config в соответствии с сообщением об ошибке, изменение $PATH в .zshrc, установка двоичных пакетов sqlite , изменение Gemfile, полное удаление обоих, и перезапускает) безрезультатно.
Установленный Homebrew sqlite3 работает правильно. which sqlite3 производит
/usr/local/opt/sqlite3/bin/sqlite3
Рады предоставить любую более актуальную информацию, которая полезна. Любое руководство приветствуется!
Вы просматривали файлы журналов, упомянутые в цитируемом вами выводе? Что там? Следовали ли вы совету в сообщении относительно pkg-config, а именно: «Не удалось правильно настроить сборку (pkg_config). Пожалуйста, установите либо утилиту pkg-config, либо pkg-config rubygem»? Что случилось?
@ 000723-weict, я не использую RVM, но попробую эти инструкции. Спасибо
@HolgerJust, см. мой комментарий в ответ Гильерме ниже.
@ 000723-weict, Обновление: я думаю, что мне не следовало использовать устаревший эхо $ PATH CLI, так как теперь $ gem install sqlite3 выдает следующее сообщение об ошибке: «ОШИБКА: при выполнении драгоценного камня ... (Errno :: EPERM) операция не разрешена @ apply2files - /usr/local/lib/ruby/gems/3.2.0/gems/sqlite3-1.5.4/.gemtest", за которым следует длинный список путей к файлам.
Если у вас не установлено pkg-config, вы должны установить, чтобы продолжить
Вы можете проверить это, используя:
$ which pkg-config
Если не найдено, установите его:
$ curl https://pkg-config.freedesktop.org/releases/pkg-config-0.28.tar.gz -o pkgconfig.tgz
$ tar -zxf pkgconfig.tgz && cd pkg-config-0.28
$ ./configure && make install
Я просто слежу за этой страницей
Я попробовал gem install pkg-config и трехстрочный код установки, который вы получили выше, и подтвердил, что pkg-config находится в gem list, и все же which pkg-config не находит pkg-config.
В этом случае я настоятельно рекомендую вам использовать RVM или rbenv Они решат все эти проблемы за вас. Я заметил, что у вас были некоторые проблемы с разрешениями. Эти ребята решат и это
Спасибо @Guilhereme Cruz, тогда попробую
Да @GuilhermeCruz, я даже рекомендую то же самое, что и мое первое решение.
Спасибо, @GuilhermeCruz и 000723-weict за рекомендацию. Установите RVM, и все заработало!