Problèmes d'installation gsl gem
je peux installer avec succès la bibliothèque gsl dans mon répertoire d'origine, mais quand j'essaie d'installer le gem gsl j'obtiens une grande liste d'erreurs que je ne comprends pas. Je me demande si quelqu'un pourrait me donner une idée de pourquoi je pourrais avoir ces erreurs. Je peux dire que j'ai:
installé gsl avec succès; du moins c'est ce à quoi il ressemblait. J'ai indiqué le chemin de la gsl-config
voici à quoi ressemble le journal des erreurs:
Building native extensions. This could take a while...
ERROR: Error installing gsl:
ERROR: Failed to build gem native extension.
/home/ted/ruby-1.9.1/bin/ruby extconf.rb install gsl
checking gsl version... 1.15
checking gsl cflags... -I/home/ted/gsl-1.15/include
checking for main() in -lcblas... no
checking gsl libs... -L/home/ted/gsl-1.15/lib -lgsl -lgslcblas -lm
checking for round()... no
checking for rngextra/rngextra.h... no
checking for qrngextra/qrngextra.h... no
checking for ool/ool_version.h... no
checking for tensor/tensor.h... no
checking for jacobi.h... no
checking for gsl/gsl_cqp.h... no
checking for gsl/gsl_multimin_fsdf.h... no
checking for gsl_poly_solve_quartic() in -lgsl... no
checking for gsl_eigen_francis() in -lgsl... no
checking for ndlinear/gsl_multifit_ndlinear.h... no
checking for alf/alf.h... no
checking rb-gsl version...1.14.7
checking ruby version... 1.9.1
checking for graph... no
checking for narray.h... yes
checking for tamu_anova/tamu_anova.h... no
checking for main() in -ltamuanova... no
creating Makefile
make
gcc -I. -I/home/ted/ruby-1.9.1/include/ruby-1.9.1/x86_64-linux -I/home/ted/ruby-1.9.1/include/ruby-1.9.1/ruby/backward -I/home/ted/ruby-1.9.1/include/ruby-1.9.1 -I. -DHAVE_NARRAY_H -I/home/ted/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/narray-0.6.0.1/. -I/home/ted/ruby-1.9.1/lib/ruby/site_ruby/1.9.1/x86_64-linux -fPIC -Wall -I../include -I/home/ted/gsl-1.15/include -o sf_bessel.o -c sf_bessel.c
In file included from sf_bessel.c:13:
../include/rb_gsl_sf.h:15:24: error: gsl/gsl_sf.h: No such file or directory
../include/rb_gsl_sf.h:16:27: error: gsl/gsl_errno.h: No such file or directory
../include/rb_gsl_sf.h:17:28: error: gsl/gsl_vector.h: No such file or directory
In file included from ../include/rb_gsl_sf.h:18,
from sf_bessel.c:13:
/home/ted/gsl-1.15/include/gsl/gsl_math.h:23:25: error: gsl/gsl_sys.h: No such file or directory
In file included from sf_bessel.c:13:
../include/rb_gsl_sf.h:19:29: error: gsl/gsl_complex.h: No such file or directory
In file included from ../include/rb_gsl.h:20,
from ../include/rb_gsl_sf.h:21,
from sf_bessel.c:13:
../include/rb_gsl_common.h:23:28: error: gsl/gsl_matrix.h: No such file or directory
../include/rb_gsl_common.h:24:33: error: gsl/gsl_permutation.h: No such file or directory
../include/rb_gsl_common.h:25:32: error: gsl/gsl_ieee_utils.h: No such file or directory
In file included from ../include/rb_gsl.h:20,
from ../include/rb_gsl_sf.h:21,
from sf_bessel.c:13:
../include/rb_gsl_common.h:322: warning: type defaults to ‘int’ in declaration of ‘gsl_complex’
../include/rb_gsl_common.h:322: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token
../include/rb_gsl_common.h:324: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
../include/rb_gsl_common.h:325: error: expected ‘)’ before ‘*’ token
../include/rb_gsl_common.h:326: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
../include/rb_gsl_common.h:328: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
../include/rb_gsl_common.h:329: error: expected ‘)’ before ‘*’ token
../include/rb_gsl_common.h:330: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
../include/rb_gsl_common.h:340: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ary2complex’
In file included from ../include/rb_gsl.h:21,
from ../include/rb_gsl_sf.h:21,
from sf_bessel.c:13:
../include/rb_gsl_math.h:24: error: expected ‘)’ before ‘(’ token
In file included from ../include/rb_gsl.h:22,
from ../include/rb_gsl_sf.h:21,
from sf_bessel.c:13:
../include/rb_gsl_complex.h:19:34: error: gsl/gsl_complex_math.h: No such file or directory
...
sf_bessel.c: In function ‘rb_gsl_sf_bessel_zero_J1_e’:
sf_bessel.c:643: error: ‘gsl_sf_bessel_zero_J1_e’ undeclared (first use in this function)
sf_bessel.c: In function ‘rb_gsl_sf_bessel_zero_Jnu’:
sf_bessel.c:648: error: ‘gsl_sf_bessel_zero_Jnu’ undeclared (first use in this function)
sf_bessel.c: In function ‘rb_gsl_sf_bessel_zero_Jnu_e’:
sf_bessel.c:653: error: ‘gsl_sf_bessel_zero_Jnu_e’ undeclared (first use in this function)
make: *** [sf_bessel.o] Error 1
Gem files will remain installed in /home/ted/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/gsl-1.14.7 for inspection.
Results logged to /home/ted/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/gsl-1.14.7/ext/gem_make.out
10 réponses
Install ruby GSL:
Ubuntu 11.10 inclut une nouvelle version (1.15) de libgsl0 qui n'est pas compatible avec ruby/gsl :
Devez installer l'ancienne version 1.14 pour ruby/gsl:
curl -O http://mirror.veriportal.com/gnu/gsl/gsl-1.14.tar.gz
tar xvzf gsl-1.14.tar.gz
cd gsl-1.14
./configure
make
sudo make install
sudo gem install --conservative --no-ri --no-rdoc gsl
L'Installation fonctionne bien et teste Ubuntu et Debian Squeeze:
Fetching: narray-0.6.0.1.gem (100%)
Building native extensions. This could take a while...
Fetching: gsl-1.14.7.gem (100%)
Building native extensions. This could take a while...
Successfully installed narray-0.6.0.1
Successfully installed gsl-1.14.7
2 gems installed
sur quel OS êtes-vous?
vous devez d'abord installer gsl
et gsl-devel
RPMs sur votre système D'exploitation en tant que root...
par exemple, sur Linux Fedora:
sudo yum install -y gsl gsl-devel
alors faites le gem install gsl
ou bundle install
sans le paquet gsl-devel, il ne trouvera pas les bons fichiers C-header.
vous devez également vous assurer que ces fichiers d'en-tête sont installés dans un emplacement qui est inclus dans LD_LIBRARY_PATH, ou qui est listé dans /etc/ld.alors?conf
Si vous avez:
- GSL 1.16 (cochez
gsl-config --version
) (par exemple dans Ubuntu 14.04), - Ruby 2.1
Ensuite, essayez https://github.com/siefca/rb-gsl -- c'est tordu pour une telle configuration.
Il devrait également fonctionner avec Ruby 1.9 et Ruby 2.0.
si vous utilisez bundler pour gérer des gemmes dans un projet alors mettez une ligne dans votre Gemfile
:
gem 'gsl', :git => 'git://github.com/siefca/rb-gsl'
Cheers!
Pour ceux qui sont encore en difficulté pour installer ce avec l' gsl_matrix_complex_equal
problème.
si vous avez couru brew install gsl
qui installera 1.15 puis tentera d'installer les fixations ruby, vous risquez de rencontrer ce problème.
L'utilisation de ce rapport comme votre source de gem rb-gsl résout le problème: https://github.com/30robots/rb-gsl
Toutefois, si vous avez une version récente de rubygems, qui repo fait un appel à Gem#searcher
qui est un méthode dépréciée et maintenant supprimée.
Mon repo mises à jour d'appel pour utiliser le Gem::Specification
API:
https://github.com/whistlerbrk/rb-gsl
Donc en bref:
brew install gsl
on OSX
et dans votre Gemfile:
gem 'gsl', :git => 'git://github.com/whistlerbrk/rb-gsl.git'
sous ubuntu 13.04 cela résout le problème:
sudo apt-get install libgsl0-dev
pas besoin d'installer une ancienne version
Attention il semble ne pas fonctionner avec Ruby 2.1.0.
Pour Ubuntu 12.04 LTS et Ruby 2.0.0:
cd ~
wget ftp://ftp.gnu.org/gnu/gsl/gsl-1.15.tar.gz
tar xvzf gsl-1.15.tar.gz
cd gsl-1.15
./configure
make
sudo make install
vérifiez si GSL 1.15 est correctement installé
gsl-config --version
puis installer gem (gsl 1.15.3)
gem install gsl
Sur ma nouvelle installation de Mac OS X Yosemite j'ai besoin spécifiquement 1.15.3, et homebrew ne pouvez pas obtenir que pour moi (il n'y a pas de brew install gsl115
)
curl ftp://ftp.gnu.org/gnu/gsl/gsl-1.15.tar.gz > gsl-1.15.tar.gz
tar xvzf gsl-1.15.tar.gz
cd gsl-1.15
./configure
make
sudo make install
gem install gsl
Pour ubuntu 13.10, ruby 2.0.0 fonctionne très bien à la prochaine
curl -O http://ftp.unicamp.br/pub/gnu/gsl/gsl-1.16.tar.gz
tar xvzf gsl-1.16.tar.gz
cd gsl-1.16
./configure
make
sudo make install
sudo gem install --conservative --no-ri --no-rdoc gsl
Attention: Ami Navon a écrit-
Devez installer l'ancienne version 1.14 pour ruby/gsl de travail
Il n'est pas d'actualité pour la gsl-1.16/ruby 2.0.0
lsb_release -a
Ubuntu 14.04.1 LTSruby --version
ruby 2.1.2p95
Important: Installer gsl développement paquet (https://askubuntu.com/a/490475/121418)sudo apt-get install libgsl0-dev
ajouter cette ligne dans Gemfilegem 'rb-gsl'
installer gem via Terminalbundle install
Vérifierbundle show rb-gsl
/.rvm/gems / ruby-2.1.2 / gems/rb-gsl-1.16.0.4
gsl-config --version
1,15
Utiliser require "gsl"
dans le fichier ruby si nécessaire
cela fonctionne aussi sur ubuntu 16.04 LTS et ruby 2.2.2sudo apt-get install libgsl0-dev