Эта проблема происходит: "Integer": невозможно преобразовать ноль в Integer (TypeError). Когда я запускаю эту команду: ruby setup.rb config
Я использовал Fedora 27, и все было хорошо, но я обновляюсь до Fedora 28, и моя конфигурация ruby больше не работает.
Проект, над которым я работаю. Он использует эту конфигурацию на Ruby и Rails:
Я установил этот конкретный рубин:
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL
mkdir -p "$(rbenv root)"/plugins
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL
source ~/.bashrc
source ~/.bash_profile
rbenv install -v 2.4.1
rbenv global 2.4.1
echo "gem: --no-document" > ~/.gemrc
gem install bundler
gem install rails -v 5.1.2
rbenv rehash
Когда я пытаюсь установить этот гем ruby-oci8 (этот способ установки, это единственный способ заставить это работать), и мгновенный клиент это хорошо:
export LD_LIBRARY_PATH=$HOME/svn/vida-funcional/rails/bin/instantclient_12_2
export ORACLE_HOME=$HOME/svn/vida-funcional/rails/bin/instantclient_12_2
echo 'export PATH="$ORACLE_HOME:$PATH"' >> ~/.bashrc
git clone https://github.com/kubo/ruby-oci8.git
cd ruby-oci8/
git checkout ruby-oci8-2.2.5.1
ruby setup.rb config
После этого проблемы обнаруживаются:
---> lib
---> lib/oci8
<--- lib/oci8
---> lib/dbd
<--- lib/dbd
<--- lib
---> ext
---> ext/oci8
/home/rporto/.rbenv/versions/2.4.1/bin/ruby /home/rporto/svn/vida-funcional/rails/bin/ruby-oci8/ext/oci8/extconf.rb
checking for load library path...
LD_LIBRARY_PATH...
checking /home/rporto/svn/vida-funcional/rails/bin/instantclient_12_2... yes
/home/rporto/svn/vida-funcional/rails/bin/instantclient_12_2/libclntsh.so.12.1 looks like an instant client.
checking for cc... ok
checking for gcc... yes
checking for LP64... yes
checking for sys/types.h... yes
checking for ruby header... ok
checking for OCIEnvCreate() in oci.h... yes
checking for OCI_MAJOR_VERSION in oci.h... /home/rporto/.rbenv/versions/2.4.1/lib/ruby/2.4.0/mkmf.rb:729:in `Integer': can't convert nil into Integer (TypeError)
from /home/rporto/.rbenv/versions/2.4.1/lib/ruby/2.4.0/mkmf.rb:729:in `block in try_constant'
from /home/rporto/.rbenv/versions/2.4.1/lib/ruby/2.4.0/mkmf.rb:409:in `popen'
from /home/rporto/.rbenv/versions/2.4.1/lib/ruby/2.4.0/mkmf.rb:409:in `block in xpopen'
from /home/rporto/.rbenv/versions/2.4.1/lib/ruby/2.4.0/mkmf.rb:321:in `open'
from /home/rporto/.rbenv/versions/2.4.1/lib/ruby/2.4.0/mkmf.rb:402:in `xpopen'
from /home/rporto/.rbenv/versions/2.4.1/lib/ruby/2.4.0/mkmf.rb:728:in `try_constant'
from /home/rporto/svn/vida-funcional/rails/bin/ruby-oci8/ext/oci8/extconf.rb:34:in `block in <main>'
from /home/rporto/.rbenv/versions/2.4.1/lib/ruby/2.4.0/mkmf.rb:945:in `block in checking_for'
from /home/rporto/.rbenv/versions/2.4.1/lib/ruby/2.4.0/mkmf.rb:351:in `block (2 levels) in postpone'
from /home/rporto/.rbenv/versions/2.4.1/lib/ruby/2.4.0/mkmf.rb:321:in `open'
from /home/rporto/.rbenv/versions/2.4.1/lib/ruby/2.4.0/mkmf.rb:351:in `block in postpone'
from /home/rporto/.rbenv/versions/2.4.1/lib/ruby/2.4.0/mkmf.rb:321:in `open'
from /home/rporto/.rbenv/versions/2.4.1/lib/ruby/2.4.0/mkmf.rb:347:in `postpone'
from /home/rporto/.rbenv/versions/2.4.1/lib/ruby/2.4.0/mkmf.rb:944:in `checking_for'
from /home/rporto/svn/vida-funcional/rails/bin/ruby-oci8/ext/oci8/extconf.rb:33:in `<main>'
'system /home/rporto/.rbenv/versions/2.4.1/bin/ruby /home/rporto/svn/vida-funcional/rails/bin/ruby-oci8/ext/oci8/extconf.rb ' failed
Единственное, что мне нужно, это установить этот гем, заставить команды работать в каталоге ruby-oci8:
ruby setup.rb config
ruby setup.rb setup
ruby setup.rb install