[RUBY] Que faire si mysql2 obtient une erreur d'installation de bundle

Conditions préalables

mac OS Rails 6.0.3.2 ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin19]

problème

Lorsque je créais un projet dans un environnement local tout en regardant le matériel pédagogique d'une certaine école en ligne, l'erreur suivante s'est produite lors de l'installation du bundle.

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /Users/ebinashohei/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/mysql2-0.5.3/ext/mysql2
/Users/ebinashohei/.rbenv/versions/2.6.3/bin/ruby -I /Users/ebinashohei/.rbenv/versions/2.6.3/lib/ruby/2.6.0 -r ./siteconf20200622-74325-qvfli8.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 /usr/local/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 /usr/local/Cellar/mysql/8.0.19_1/lib
-----
creating Makefile

current directory: /Users/ebinashohei/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/mysql2-0.5.3/ext/mysql2
make "DESTDIR=" clean

current directory: /Users/ebinashohei/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/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 -lssl
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/ebinashohei/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/mysql2-0.5.3 for inspection.
Results logged to /Users/ebinashohei/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/extensions/x86_64-darwin-19/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

Solution

Puisqu'il a résolu une erreur similaire, il est montré ci-dessous.

$bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib"
$ bundle install

Site de référence https://qiita.com/SAYJOY/items/dd7c8fc7a3647e7ff969

Recommended Posts

Que faire si mysql2 obtient une erreur d'installation de bundle
Ajouter gem'rails-i18n ',' ~> 6.0.0 'et que faire si l'installation du bundle donne une erreur
Que faire si une erreur se produit lorsque nokogiri entre lors de l'installation du bundle
Que faire si vous obtenez une erreur gcc dans Docker
Que faire si vous créez accidentellement un modèle
Que faire si une erreur ActionController :: UnknownFormat se produit
Que faire si vous entrez gem'bcrypt 'dans votre Gemfile et obtenez une erreur avec l'installation du bundle
Une erreur se produit lors de l'installation du bundle après avoir défini la base de données sur mysql
Que faire lorsqu'une exception java.io.IOException se produit dans GlassFish
mysql2 ne s'installe pas avec l'installation du bundle
[Rails] Que faire si vous effectuez accidentellement une installation groupée dans un environnement de production de votre environnement local
Que faire si une erreur d'analyseur SAX se produit lors de l'utilisation de Liferay 7 / DXP sur AWS
Que faire si vous obtenez une erreur «302» dans le code de test du contrôleur dans Rails
Que faire si vous vous fâchez contre OpenSSL avec Pyenv Install
Que faire lorsqu'une exception javax.el.PropertyNotWritableException se produit
Que faire si vous obtenez une erreur de bibliothèque partagée JNI lorsque vous essayez de créer avec Eclipse
Que faire si vous obtenez un avertissement groovy dans Thymeleaf Layout
Que faire si vous ne pouvez pas installer le plug-in à partir d'Eclipse Marketplace
il ne reste plus d'espace sur l'appareil Que faire en cas d'erreur
Copier le référentiel et obtenir une erreur mysql2 lors de la première installation du bundle
Que faire si vous recevez une alerte de vulnérabilité MiniMagick sur GitHub
Que faire si le serveur Tomcat meurt
Erreur lors de l'installation du bundle après la mise à niveau vers Catalina
Que faire si vous transmettez des informations incorrectes
Que faire si l'archétype mvn: générer échoue
Que faire si l'image publiée par refile disparaît après avoir défini la page d'erreur 404 dans Rails
Que faire si vous obtenez Impossible de localiser le répertoire Gemfile ou .bundle /
Que faire quand Pour installer la version manquante, exécutez `gem install bundler: 2.1.4`
[Ubuntu] Que faire lorsque MongoDB ne peut pas être démarré en raison d'une erreur SocketException
Que faire si le message "Un serveur est déjà en cours d'exécution" s'affiche. Erreur lors de la tentative de démarrage du serveur rails
Erreur lors de l'installation du bundle
Comment installer MySQL
Que faire si l'installation du gem de débogage échoue
Que faire si le serveur Rails ne peut pas démarrer
Que faire si une exception ClassNotFoundException se produit lors du démarrage de Tomcat
Que faire si le serveur rails ne peut pas être arrêté
Que faire si TextToSpeech ne fonctionne pas sur Android 11
Que faire si vous obtenez une erreur NoClassDefFoundError lorsque vous essayez d'exécuter eclipse sur Java 9
Que faire si Failure / Error: require File.expand_path ('../ config / environment', __dir__) apparaît dans RSpec
Que faire si vous obtenez une erreur indiquant "Veuillez saisir une valeur valide" lors de l'obtention avec Rails datetime_field
Que faire si le message d'erreur "Impossible de trouver un moteur d'exécution JavaScript" s'affiche lors du démarrage du serveur rails
l'installation du bundle n'installe pas mysql2