ruby - libreria - Problemas al instalar gsl gema
install gsl (10)
Instalar ruby GSL:
Ubuntu 11.10 incluye una versión más nueva (1.15) de libgsl0 que no es compatible con ruby / gsl:
Debe instalar la versión anterior 1.14 para que ruby / gsl funcione:
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
La instalación funciona bien y prueba en Ubuntu y 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
Puedo instalar con éxito la biblioteca gsl en mi directorio de inicio, pero cuando intento instalar la gema gsl obtengo una gran lista de errores que no entiendo. Me pregunto si alguien podría darme una idea de por qué podría estar recibiendo esos errores. Puedo decir que tengo:
Gsl instalado con éxito; Al menos eso es lo que parecía. Señalé el camino a gsl-config
Así es como se ve el registro de errores:
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
Atención, parece que no funciona con Ruby 2.1.0.
Para Ubuntu 12.04 LTS y 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
Compruebe si GSL 1.15 está instalado correctamente
gsl-config --version
Luego instale gema (gsl 1.15.3)
gem install gsl
En mi nueva instalación de Mac OS X Yosemite , necesitaba específicamente 1.15.3, y Homebrew no puede obtener eso para mí (no hay ningún 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
Esto también funciona en ubuntu 16.04 LTS y ruby 2.2.2
sudo apt-get install libgsl0-dev
Para cualquier persona que todavía tenga problemas para instalar esto con el problema gsl_matrix_complex_equal
.
Si ha ejecutado brew install gsl
cual, a partir de este momento, instalará 1.15 y luego intentó instalar los enlaces de ruby, posiblemente se encontrará con este problema.
El uso de este repositorio como fuente de gema rb-gsl resuelve el problema: https://github.com/30robots/rb-gsl
Sin embargo, si tiene una versión más reciente de rubygems, ese repositorio realiza una llamada al Gem#searcher
que es un método obsoleto y ahora eliminado.
Mi repositorio actualiza esa llamada para usar la API de Gem::Specification
:::
https://github.com/whistlerbrk/rb-gsl
Así que en resumen:
brew install gsl
en OSX
y en tu Gemfile:
gem ''gsl'', :git => ''git://github.com/whistlerbrk/rb-gsl.git''
Para ubuntu 13.10, ruby 2.0.0 funciona bien a continuación
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
Atención: Ami Navon escribió-
Debe instalar la versión anterior 1.14 para que ruby / gsl funcione
No es actual ahora para gsl-1.16 / ruby-2.0.0
Si usted tiene:
- GSL 1.16 (verifique con
gsl-config --version
) (por ejemplo, en Ubuntu 14.04 ), - Ruby 2.1
A continuación, intente https://github.com/siefca/rb-gsl ; se ha modificado para dicha configuración.
También debería funcionar con Ruby 1.9 y Ruby 2.0.
Si está utilizando Bundler para administrar gemas en un proyecto, coloque una línea en su Gemfile
:
gem ''gsl'', :git => ''git://github.com/siefca/rb-gsl''
¡Aclamaciones!
bajo ubuntu 13.04 esto resuelve el problema:
sudo apt-get install libgsl0-dev
No es necesario instalar manualmente una versión antigua.
en que sistema operativo estas?
primero necesita instalar gsl
y gsl-devel
RPM en su sistema operativo como root ... por ejemplo, en Fedora Linux:
sudo yum install -y gsl gsl-devel
a continuación, haga la gem install gsl
o bundle install
sin el paquete gsl-devel, no encontrará los archivos de cabecera C correctos.
También debe asegurarse de que esos archivos de encabezado estén instalados en una ubicación que esté incluida en LD_LIBRARY_PATH, o que aparezca en /etc/ld.so.conf
lsb_release -a
Ubuntu 14.04.1 LTS
ruby --version
ruby 2.1.2p95
Importante: instale el paquete de desarrollo gsl ( https://askubuntu.com/a/490475/121418 )
sudo apt-get install libgsl0-dev
Añade esta línea en Gemfile
gem ''rb-gsl''
Instalar gema a través de Terminal
bundle install
Verificar
bundle show rb-gsl
/.rvm/gems/ruby-2.1.2/gems/rb-gsl-1.16.0.4
gsl-config --version
1.15
Use require "gsl"
en ruby file si es necesario