mientras ejecuta la instalación del paquete
An error occurred while installing mysql2 (0.5.3), and Bundler cannot continue. Make sure that `gem install mysql2 -v '0.5.3' --source 'https://rubygems.org/'` succeeds before bundling.Aplicación de rieles 6.1.3
Paquete versión 2.2.19
macOS Big Sur 11.4
en el archivo de gemas
ruby '2.6.6' gem 'rails', '~> 6.1.3', '>= 6.1.3.1' gem 'mysql2'en Gemfile.lock mysql está en 0.5.3
cuando ejecuto bundle install , falla con lo normal:
Al examinar el error de compilación, que aparece anteriormente en la salida, el error de compilación parece ser: (resultados completos a continuación)
ld: library not found for -lzstd Los resultados completos de la bundle install son
jason@MacBook-Air % bundle install Fetching gem metadata from https://rubygems.org/ Fetching gem metadata from https://rubygems.org/........ Using rake 13.0.3 Using concurrent-ruby 1.1.8 Using rack 2.2.3 Using nio4r 2.5.7 Using builder 3.2.4 Using marcel 1.0.1 Using mini_portile2 2.5.1 Using multi_json 1.15.0 Using method_source 1.0.0 Using crass 1.0.6 Using thor 1.1.0 Using public_suffix 4.0.6 Using execjs 2.7.0 Using aws-eventstream 1.1.1 Using aws-partitions 1.447.0 Using jmespath 1.4.0 Using bcrypt 3.1.16 Using betterlorem 0.1.2 Using bindex 0.8.1 Using msgpack 1.4.2 Using popper_js 1.16.0 Using ffi 1.15.0 Using tilt 2.0.10 Using bundler 2.2.19 Using byebug 11.1.3 Using regexp_parser 2.1.1 Using childprocess 3.0.0 Using connection_pool 2.2.5 Using rexml 3.2.5 Using orm_adapter 0.5.0 Using diff-lcs 1.4.4 Using unf_ext 0.0.7.7 Using docile 1.3.5 Using e2mmap 0.1.0 Using erubis 2.7.0 Using ffaker 2.18.0 Using finishing_moves 1.0.1 Using raabro 1.4.0 Using temple 0.8.2 Using sexp_processor 4.15.2 Using hashdiff 1.0.1 Using hiredis 0.6.3 Using honeybadger 4.8.0 Using kaminari-core 1.2.1 Using rb-fsevent 0.10.4 Using ruby_dep 1.5.0 Using ruby2_keywords 0.0.4 Fetching mysql2 0.5.3 Using minitest 5.14.4 Using zeitwerk 2.4.2 Using parslet 1.8.2 Using puma 3.12.6 Using rails_http_options 0.1.0 Using redis 4.2.5 Using rubyzip 2.3.0 Using semantic_range 3.0.0 Using rspec-support 3.10.2 Using simple-random 1.0.3 Using simplecov-html 0.12.3 Using simplecov_json_formatter 0.1.2 Using spring 2.1.1 Using sqlite3 1.4.2 Using stripe 5.32.1 Using vcr 6.0.0 Using i18n 1.8.10 Using tzinfo 2.0.4 Using rack-test 1.1.0 Using sprockets 3.7.2 Using warden 1.2.9 Using rack-attack 6.5.0 Using rack-cors 1.1.1 Using rack-protection 2.1.0 Using rack-proxy 0.6.5 Using sitemap_generator 6.1.2 Using addressable 2.7.0 Using autoprefixer-rails 10.2.4.0 Using aws-sigv4 1.2.3 Using bootsnap 1.7.4 Using sassc 2.4.0 Using crack 0.4.5 Using unf 0.1.4 Using haml 5.2.1 Using ruby_parser 3.15.1 Using rb-inotify 0.10.1 Using mustermann 1.1.1 Using thwait 0.2.0 Using sidekiq 6.2.1 Using websocket-extensions 0.1.5 Using activesupport 6.1.3.2 Using aws-sdk-core 3.114.0 Using simpleidn 0.2.1 Using et-orbi 1.2.4 Using faker 2.17.0 Using sass-listen 4.0.0 Using launchy 2.5.0 Using listen 3.1.5 Using rspec-core 3.10.1 Using rspec-expectations 3.10.1 Using rspec-mocks 3.10.2 Using selenium-webdriver 3.142.7 Using simplecov 0.21.2 Using sinatra 2.1.0 Using webmock 3.12.2 Using erubi 1.10.0 Using mini_mime 1.0.3 Using racc 1.5.2 Using ruby_http_client 3.5.2 Using nokogiri 1.11.3 Using websocket-driver 0.7.3 Using globalid 0.4.2 Using activemodel 6.1.3.2 Using mail 2.7.1 Using aws-sdk-kms 1.43.0 Using dnsruby 1.61.5 Using factory_bot 6.1.0 Using fugit 1.4.5 Using sass 3.7.4 Using jbuilder 2.11.2 Using rspec 3.10.0 Using sendgrid-ruby 6.4.0 Using shoulda-matchers 4.5.1 Using simplecov-rcov 0.2.3 Using split 3.4.1 Using spring-watcher-listen 2.0.1 Using rails-dom-testing 2.0.3 Using loofah 2.9.1 Using activejob 6.1.3.2 Using activerecord 6.1.3.2 Using aws-sdk-s3 1.93.1 Using xpath 3.2.0 Using html2haml 2.2.0 Using roo 2.8.3 Using rspec-wait 0.0.9 Using rufus-scheduler 3.7.0 Using webdrivers 4.6.0 Using rails-html-sanitizer 1.3.0 Using sidekiq-scheduler 3.0.1 Using capybara 3.35.3 Using counter_culture 2.8.0 Using actionview 6.1.3.2 Using kaminari-activerecord 1.2.1 Using actionpack 6.1.3.2 Using kaminari-actionview 1.2.1 Using nonschema_migrations 5.0.2 Using actionmailer 6.1.3.2 Using railties 6.1.3.2 Using sprockets-rails 3.2.2 Using kaminari 1.2.1 Using activestorage 6.1.3.2 Using activerecord-session_store 2.0.0 Using font_awesome5_rails 1.4.0 Using actioncable 6.1.3.2 Using haml-rails 2.0.1 Using sass-rails 5.1.0 Using jquery-rails 4.4.0 Using rspec-rails 5.0.1 Using web-console 4.1.0 Using webpacker 5.2.1 Using actionmailbox 6.1.3.2 Using actiontext 6.1.3.2 Using sassc-rails 2.1.2 Using responders 3.0.1 Using bootstrap 4.4.1 Using rails 6.1.3.2 Using factory_bot_rails 6.1.0 Using devise 4.7.3 Using turbo-rails 0.5.9 from https://github.com/hotwired/turbo-rails.git (at main@2945dcb) Using stimulus-rails 0.2.3 Using stripe-rails 2.3.0 Using universal-track-manager 0.6.1.alpha Using paranoia 2.4.3 Using spf-query 0.1.5 from https://github.com/trailofbits/spf-query.git (at master@6dac502) Installing mysql2 0.5.3 with native extensions Using hot-glue 0.1.1 Gem::Ext::BuildError: ERROR: Failed to build gem native extension. current directory: /Users/jason/.rvm/gems/ruby-2.6.6/gems/mysql2-0.5.3/ext/mysql2 /Users/jason/.rvm/rubies/ruby-2.6.6/bin/ruby -I /Users/jason/.rvm/rubies/ruby-2.6.6/lib/ruby/site_ruby/2.6.0 -r ./siteconf20210604-8580-1kmtwzs.rb extconf.rb checking for rb_absint_size()... yes checking for rb_absint_singlebit_p()... yes checking for rb_wait_for_single_fd()... yes ----- Using mysql_config at /opt/homebrew/bin/mysql_config ----- checking for mysql.h... yes checking for errmsg.h... yes checking for SSL_MODE_DISABLED in mysql.h... yes checking for SSL_MODE_PREFERRED in mysql.h... yes checking for SSL_MODE_REQUIRED in mysql.h... yes checking for SSL_MODE_VERIFY_CA in mysql.h... yes checking for SSL_MODE_VERIFY_IDENTITY in mysql.h... yes checking for MYSQL.net.vio in mysql.h... yes checking for MYSQL.net.pvio in mysql.h... no checking for MYSQL_ENABLE_CLEARTEXT_PLUGIN in mysql.h... yes checking for SERVER_QUERY_NO_GOOD_INDEX_USED in mysql.h... yes checking for SERVER_QUERY_NO_INDEX_USED in mysql.h... yes checking for SERVER_QUERY_WAS_SLOW in mysql.h... yes checking for MYSQL_OPTION_MULTI_STATEMENTS_ON in mysql.h... yes checking for MYSQL_OPTION_MULTI_STATEMENTS_OFF in mysql.h... yes checking for my_bool in mysql.h... no ----- Don't know how to set rpath on your system, if MySQL libraries are not in path mysql2 may not load ----- ----- Setting libpath to /opt/homebrew/Cellar/mysql/8.0.25_1/lib ----- creating Makefile current directory: /Users/jason/.rvm/gems/ruby-2.6.6/gems/mysql2-0.5.3/ext/mysql2 make "DESTDIR=" clean current directory: /Users/jason/.rvm/gems/ruby-2.6.6/gems/mysql2-0.5.3/ext/mysql2 make "DESTDIR=" compiling client.c compiling infile.c compiling mysql2_ext.c compiling result.c compiling statement.c linking shared-object mysql2/mysql2.bundle ld: library not found for -lzstd clang: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [mysql2.bundle] Error 1 make failed, exit code 2 Gem files will remain installed in /Users/jason/.rvm/gems/ruby-2.6.6/gems/mysql2-0.5.3 for inspection. Results logged to /Users/jason/.rvm/gems/ruby-2.6.6/extensions/-darwin-20/2.6.0/mysql2-0.5.3/gem_make.out An error occurred while installing mysql2 (0.5.3), and Bundler cannot continue. Make sure that `gem install mysql2 -v '0.5.3' --source 'https://rubygems.org/'` succeeds before bundling. In Gemfile: mysql2 jason@MacBook-Air % Ya he ejecutado con éxito brew install mysql ... si lo ejecuto de nuevo me dice:
Advertencia: mysql 8.0.25_1 ya está instalado y actualizado. Para reinstalar 8.0.25_1, ejecute: brew reinstall mysql
Esto me sucedió usando MacOS 11.6 (Big Sur) en un chip M1.
Tratar
brew install mysqlluego
gem install mysql2 -- --with-opt-dir="$(brew --prefix zstd)"que funcionó para mí.
Si eso funciona, use esto para configurar Bundler para que lo haga por usted (en este directorio, es decir, "local"):
bundle config --local build.mysql2 "--with-opt-dir="$(brew --prefix zstd)"" Entonces bundle install debería funcionar.
Gracias por toda la ayuda brindada aquí, ninguna de las soluciones funcionó para mí porque el paquete no pudo leer la configuración correctamente, en su lugar, usé toda la información que se encuentra aquí y usé el siguiente comando
gem install mysql2 -v '0.5.3' -- --with-opt-dir=$(brew --prefix openssl) --with-ldflags=-L/opt/homebrew/Cellar/zstd/1.5.0/libCambie su versión mysql1 en consecuencia
Obtuve el mismo error al intentar instalar mysql2 -v 0.4.1 en M1
--SOLUCIONADO--
brew install zstd which zstd mi ruta es -> /opt/homebrew/bin/zstd
debe verificar desde dónde se vinculó zstd
cd /opt/homebrew/bin ls -la zstd -> ../Bodega/zstd/1.5.0/bin/zstd
por lo que necesita obtener la ruta a zstd lib, mi es:
/opt/homebrew/Cellar/zstd/1.5.0/libY luego haz una combinación clásica con algo de magia.
bundle config --local build.mysql2 "--with-ldflags=-L/opt/homebrew/Cellar/zstd/1.5.0/lib" bundle install gem list my *** LOCAL GEMS *** mysql2 (0.4.10)Esto es lo que funcionó para mí en el M1.
Primero asegúrese de tener mysql instalado y openssl con Homebrew
brew install mysql brew install opensslLuego establezca estos valores para la instalación de mysql2 manualmente. Mi ruta para zstd fue la misma que la de Octocats, así que asegúrese de seguir sus instrucciones y cambiar la opción --with-ldflags según corresponda.
bundle config --local build.mysql2 "--with-opt-dir="$(brew --prefix openssl) --with-ldflags=-L/opt/homebrew/Cellar/zstd/1.5.0/lib""