Проблемы с установкой gsl gem
Я могу успешно установить библиотеку gsl в своем домашнем каталоге, но когда я пытаюсь установить gsl gem, я получаю большой список ошибок, которые я не понимаю. Мне интересно, может ли кто-нибудь дать мне понять, почему я могу получить эти ошибки. Я могу сказать, что у меня есть:
Установлен gsl успешно; по крайней мере, так оно и было.
Я указал путь к gsl-config
Вот как выглядит журнал ошибок:
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
Ответы
Ответ 1
Установить рубин GSL:
Ubuntu 11.10 включает более новую версию (1.15) libgsl0, которая несовместима с ruby /gsl:
Должна установить более старую версию 1.14 для работы 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
Монтажные работы ОК и тестирование Ubuntu и 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
Ответ 2
на какой ОС вы находитесь?
сначала вам нужно установить gsl
и gsl-devel
RPM на вашей ОС как root...
например на Fedora Linux:
sudo yum install -y gsl gsl-devel
то выполните gem install gsl
или bundle install
без пакета gsl-devel, он не найдет правильные файлы C-заголовков.
Вам также необходимо убедиться, что эти файлы заголовков установлены в местоположении, которое включено в LD_LIBRARY_PATH или указано в/etc/ld.so.conf
Ответ 3
Если у вас есть:
- GSL 1.16 (проверьте с помощью
gsl-config --version
) (например, в Ubuntu 14.04),
- Ruby 2.1
Затем попробуйте https://github.com/siefca/rb-gsl - он настроен для такой конфигурации.
Он также должен работать с Ruby 1.9 и Ruby 2.0.
Если вы используете диспетчер для управления драгоценными камнями в проекте, тогда поместите строку в свой Gemfile
:
gem 'gsl', :git => 'git://github.com/siefca/rb-gsl'
Ура!
Ответ 4
Для тех, кто все еще пытается установить это с проблемой gsl_matrix_complex_equal
.
Если вы запустили brew install gsl
, который в этом письме установит 1.15, а затем попытается установить привязки ruby, вы можете столкнуться с этой проблемой.
Использование этого репо в качестве источника драгоценных камней rb-gsl решает проблему:
https://github.com/30robots/rb-gsl
Однако, если у вас есть более новая версия rubygems, этот репо делает вызов Gem#searcher
, который является устаревшим и теперь удаленным способом.
Мое обновление repo вызывает вызов API Gem::Specification
:
https://github.com/whistlerbrk/rb-gsl
Короче говоря:
brew install gsl
в OSX
и в вашем Gemfile:
gem 'gsl', :git => 'git://github.com/whistlerbrk/rb-gsl.git'
Ответ 5
под ubuntu 13.04 это решает проблему:
sudo apt-get install libgsl0-dev
нет необходимости вручную устанавливать старую версию
Ответ 6
Внимание, похоже, не работает с Ruby 2.1.0.
Для Ubuntu 12.04 LTS и 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
Проверьте правильность установки GSL 1.15
gsl-config --version
Затем установите gem (gsl 1.15.3)
gem install gsl
Ответ 7
Для ubuntu 13.10 рубин 2.0.0 работает отлично -
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
Внимание:
Ами Навон написал -
Должна установить более старую версию 1.14 для работы ruby /gsl
Теперь не актуально для gsl-1.16/ruby-2.0.0
Ответ 8
lsb_release -a
Ubuntu 14.04.1 LTS
ruby --version
ruby 2.1.2p95
Важно: установите пакет разработки gsl (https://askubuntu.com/a/490475/121418)
sudo apt-get install libgsl0-dev
Добавьте эту строку в Gemfile
gem 'rb-gsl'
Установка драгоценного камня через терминал
bundle install
Проверьте
bundle show rb-gsl
/.rvm/gems/ruby-2.1.2/gems/rb-gsl-1.16.0.4
gsl-config --version
1,15
Используйте require "gsl"
в рубиновом файле, если необходимо
Ответ 9
В моей новой установке Mac OS X Yosemite мне нужно было конкретно 1.15.3, а homebrew не может получить это для меня (нет 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