Ruby 2.5.7 Rails 5.2.4
Ceci est mon article de mémo, mais je n'ai pas trouvé d'article expliquant cette erreur. J'espère que cela sera utile à n'importe qui.
À des fins d'apprentissage, j'ai essayé de changer le moteur de modèle de l'application Rails que je crée actuellement de erb à slim. Cela allait être une rénovation lourde, alors gardez l'application existante, faites une copie et affinez-la.
Qiita --Pousser le référentiel cloné à distance en tant que référentiel séparé
La copie du référentiel et de l'application GitHub était terminée, et lorsque j'ai essayé l'installation du bundle dans le répertoire de l'application copié pour slim, l'erreur suivante s'est produite. (À ce stade, l'application source de copie n'a pas d'erreur.)
$ bundle install
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
Fetching gem metadata from https://rubygems.org/.........
...
Utilisation de la liste des gemmes
...
Fetching mysql2 0.5.3
Installing mysql2 0.5.3 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /home/vagrant/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/mysql2-0.5.3/ext/mysql2
/home/vagrant/.rbenv/versions/2.5.7/bin/ruby -r ./siteconf20200915-19570-14xz74g.rb extconf.rb
checking for rb_absint_size()... yes
checking for rb_absint_singlebit_p()... yes
checking for rb_wait_for_single_fd()... yes
checking for -lmysqlclient... no
-----
mysql client is missing. You may need to 'sudo apt-get install libmariadb-dev', 'sudo apt-get install libmysqlclient-dev' or 'sudo yum install mysql-devel', and try again.
-----
*** 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
--without-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=/home/vagrant/.rbenv/versions/2.5.7/bin/$(RUBY_BASE_NAME)
--with-mysql-dir
--without-mysql-dir
--with-mysql-include
--without-mysql-include=${mysql-dir}/include
--with-mysql-lib
--without-mysql-lib=${mysql-dir}/lib
--with-mysql-config
--without-mysql-config
--with-mysql-dir
--without-mysql-dir
--with-mysql-include
--without-mysql-include=${mysql-dir}/include
--with-mysql-lib
--without-mysql-lib=${mysql-dir}/lib
--with-mysqlclientlib
--without-mysqlclientlib
To see why this extension failed to compile, please check the mkmf.log which can be found here:
/home/vagrant/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/extensions/x86_64-linux/2.5.0/mysql2-0.5.3/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in /home/vagrant/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/gems/mysql2-0.5.3 for inspection.
Results logged to /home/vagrant/.rbenv/versions/2.5.7/lib/ruby/gems/2.5.0/extensions/x86_64-linux/2.5.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
mysql client is missing. You may need to 'sudo apt-get install libmariadb-dev', 'sudo apt-get install libmysqlclient-dev' or 'sudo yum install mysql-devel', and try again.
On me demande d'essayer cette phrase d'erreur et 3 modèles de commandes, je vais donc les essayer dans l'ordre.
$ sudo apt-get install libmariadb-dev
sudo: apt-get: command not found
On m'a dit que la commande apt-get
était introuvable, alors sautez le deuxième 'sudo apt-get install libmysqlclient-dev'
et essayez le troisième'sudo yum install mysql-devel'
..
$ sudo yum install mysql-devel
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: ftp.tsukuba.wide.ad.jp
* extras: ftp.tsukuba.wide.ad.jp
* updates: ftp.tsukuba.wide.ad.jp
base | 3.6 kB 00:00:00
extras | 2.9 kB 00:00:00
nodesource | 2.5 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/3): extras/7/x86_64/primary_db | 206 kB 00:00:00
(2/3): updates/7/x86_64/primary_db | 4.5 MB 00:00:00
(3/3): nodesource/x86_64/primary_db | 43 kB 00:00:01
Resolving Dependencies
--> Running transaction check
---> Package mariadb-devel.x86_64 1:5.5.65-1.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================================================================================
Installing:
mariadb-devel x86_64 1:5.5.65-1.el7 base 756 k
Transaction Summary
==============================================================================================================================================================================================
Install 1 Package
Total download size: 756 k
Installed size: 3.3 M
Is this ok [y/d/N]: y
Downloading packages:
mariadb-devel-5.5.65-1.el7.x86_64.rpm | 756 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : 1:mariadb-devel-5.5.65-1.el7.x86_64 1/1
Verifying : 1:mariadb-devel-5.5.65-1.el7.x86_64 1/1
Installed:
mariadb-devel.x86_64 1:5.5.65-1.el7
Complete!
Il vous sera demandé si vous souhaitez télécharger le package en cours de route, alors entrez y
et appuyez sur Entrée.
Le mysql-devel
entré dans la commande est le système de gestion de paquet requis pour exécuter mysql sur le serveur, et cette fois le mariadb-devel
manquant est téléchargé.
Téléchargement terminé normalement, à nouveau
$bundle install
Lorsque vous le faites, il se termine normalement.
Je pouvais comprendre le système de gestion des paquets, mais je ne pouvais pas comprendre comment mariadb-devel était impliqué dans cette erreur, alors j'apprécierais que vous me le fassiez savoir dans les commentaires.
De plus, si vous avez des questions, des différences d'interprétation ou si vous pensez que quelque chose ne va pas avec la méthode de description, nous vous serions reconnaissants de bien vouloir le signaler dans les commentaires.
Merci d'avoir lu jusqu'au bout.
Qiita --Pousser le référentiel cloné à distance en tant que référentiel séparé Hatena Blog-Install MySQL sur CentOS
Recommended Posts