redhat linux install fails with error "extconf.rb:160:in `<main>': uninitialized constant CONFTEST (NameError)"
[root@dbl2 ~]# gem install ruby-oci8 Building native extensions. This could take a while... ERROR: Error installing ruby-oci8: ERROR: Failed to build gem native extension.
/usr/bin/ruby extconf.rb
attempting to locate oracle-instantclient... checking load library path... LD_LIBRARY_PATH... checking /dbo/oracle/product/18.3/lib... yes /dbo/oracle/product/18.3/lib/libclntsh.so.10.1 looks like a full client. checking for cc... ok checking for gcc... yes checking for LP64... yes checking for sys/types.h... yes checking for ruby header... ok Get the version of Oracle from SQL*Plus... 1800 try -I/dbo/oracle/product/18.3/rdbms/public checking for oci.h... yes checking for OCIEnvCreate() in oci.h... yes checking for OCI_MAJOR_VERSION in oci.h... 18 checking for OCI_MINOR_VERSION in oci.h... 13 checking for localtime_r()... yes checking for dladdr()... yes checking for dlmodinfo()... no checking for dlgetname()... no checking for ruby/thread.h... yes checking for rb_class_superclass() in ruby.h... yes checking for rb_thread_call_without_gvl() in ruby/thread.h... yes checking for rb_sym2str() in ruby.h... no checking for plthook... *** 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}/lib64
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/bin/ruby
--with-instant-client
--without-instant-client
--with-instant-client-dir
--without-instant-client-dir
--with-instant-client-include
--without-instant-client-include=${instant-client-dir}/include
--with-instant-client-lib
--without-instant-client-lib=${instant-client-dir}/
--with-oracle-version
--without-oracle-version
--with-runtime-check
--without-runtime-check
extconf.rb:160:in `
Gem files will remain installed in /usr/local/share/gems/gems/ruby-oci8-2.2.9 for inspection. Results logged to /usr/local/share/gems/gems/ruby-oci8-2.2.9/ext/oci8/gem_make.out )
Linux version: [root@dbl2 ~]# lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch Distributor ID: RedHatEnterpriseWorkstation Description: Red Hat Enterprise Linux Workstation release 7.9 (Maipo) Release: 7.9 Codename: Maipo
Could you use ruby 2.1.0 or later?
Otherwise, could you replace this line with FileUtils.rm_f("conftest.#{$OBJEXT}")?
I'm not sure what Ruby 2.1.0 would do to fix this but I can try a bit later. In the meantime, I tried 2.1.8 based on the README note "Use ruby-oci8 2.1.8 for ruby 1.8" and it installed successfully.
[root@dbl2 ~]# gem install ruby-oci8 --version 2.1.8 Fetching: ruby-oci8-2.1.8.gem (100%) Building native extensions. This could take a while... Successfully installed ruby-oci8-2.1.8 Parsing documentation for ruby-oci8-2.1.8 Installing ri documentation for ruby-oci8-2.1.8 1 gem installed