So it seems libruby.so uses its own statically linked openssl, and exports 
those symbols so they are available to other applications. Maybe modifying the 
linker commandline to provide -lcouchbase before -lruby
would help? I’m not entirely sure. Your best bet is to build the library 
without openssl (requires CMake, use ./cmake/configure —disable-ssl). Follow 
the instructions for building from source on the README 
(https://github.com/couchbase/libcouchbase 
<https://github.com/couchbase/libcouchbase>). Remember to git checkout 2.5.1 
before building in order to get a stable release version.

> On Jul 8, 2015, at 1:49 PM, Jesus Orosco <chu...@gmail.com> wrote:
> 
> cbc version:
> 
> root@ma-fld02.drhm01:/opt/td-agent/embedded/lib# cbc version
> cbc:
>   Runtime: Version=2.5.1, Changeset=54ea1fa2e7bd5fef34450d09f2677bb53b6e62ea
>   Headers: Version=2.5.1, Changeset=54ea1fa2e7bd5fef34450d09f2677bb53b6e62ea
>   IO: Default=libevent, Current=libevent
>   SSL: .. SUPPORTED
> 
> ldd:
> 
> root@ma-fld02.drhm01:/opt/td-agent/embedded/lib# ldd 
> /opt/td-agent/embedded/bin/ruby
>       linux-vdso.so.1 =>  (0x00007fff02f72000)
>       libruby.so.2.1 => /opt/td-agent/embedded/lib/libruby.so.2.1 
> (0x00007f0e98795000)
>       libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0e983c9000)
>       libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 
> (0x00007f0e981aa000)
>       libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f0e97fa6000)
>       libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 
> (0x00007f0e97d6d000)
>       libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f0e97a66000)
>       /lib64/ld-linux-x86-64.so.2 (0x00007f0e98c74000)
> 
> On Wednesday, July 8, 2015 at 1:43:23 PM UTC-7, M. Nunberg wrote:
> So you’re using the correct system openssl, but for some reason I still 
> suspect that the Ruby you are using isn’t using the correct one.
> 
> Just to verify, download the libcouchbase command line tools 
> (libcouchbase2-bin) and see if a simple command such as ‘cbc version’ works 
> for you. If that does, your options are:
> 
> 1) Rebuild libcouchbase without SSL support (you’d need to build it from 
> source)
> 2) Ensure your Ruby uses the system-available openssl
> 
> Curious what an ‘ldd’ would yield on the Ruby binary being used. 
> 
>> On Jul 8, 2015, at 1:24 PM, Jesus Orosco <chu...@gmail.com <javascript:>> 
>> wrote:
>> 
>> Openssl version as follows:
>> 
>> root@ma-fld02.drhm01:~# dpkg -l | grep openssl
>> ii  libgnutls-openssl27:amd64           2.12.23-12ubuntu2.2              
>> amd64        GNU TLS library - OpenSSL wrapper
>> ii  openssl                             1.0.1f-1ubuntu2.11               
>> amd64        Secure Sockets Layer toolkit - cryptographic utility
>> 
>> I failed to mention this, my bad. Yes I am using the Ruby that is embedded 
>> with Treasure Data Fluent D package, the ultimate goal being to use the 
>> Couchbase plugin for fluentd:
>> 
>> https://github.com/obieq/fluent-plugin-couchbase 
>> <https://github.com/obieq/fluent-plugin-couchbase>
>> 
>> I have this working on Ubuntu 12 using a similar embedded version of Ruby.
>> 
>> On Wednesday, July 8, 2015 at 1:16:25 PM UTC-7, M. Nunberg wrote:
>> What version of openssl do you have installed? What does dpkg say? At first 
>> glance it would seem that either libcouchase is linked against the wrong 
>> openssl, or you have a different openssl installation.
>> 
>> I’ve just downloaded the libssl deb for trusty and extracted it. Among one 
>> of the symbols missing is SSL_get_ssl_method@OPENSSL_1.0.0 (from the error 
>> log).
>> 
>> It’s found inside the ssl package I just downloaded:
>> mnunberg@csure:~/repos/ubuntu/pool/trusty/main/libc/libcouchbase/tmp/lib/x86_64-linux-gnu$
>>  readelf -a libssl.so.1.0.0 | grep SSL_get_ssl_method
>>    622: 0000000000038830     5 FUNC    GLOBAL DEFAULT   12 
>> SSL_get_ssl_method@@OPENSSL_1.0.0
>> 
>> I am seeing you are using a non-system Ruby installation. Perhaps this Ruby 
>> version has its own openssl which is different than the system’s, and in 
>> turn, is accidentally being picked up by libcouchbase?
>> 
>>> On Jul 8, 2015, at 1:05 PM, Jesus Orosco <chu...@gmail.com <>> wrote:
>>> 
>>> I've installed the most recent C libraries via Couchbase repo:
>>> 
>>> root@ma-fld02.drhm01:~# dpkg -l | grep couchbase
>>> ii  libcouchbase-dev:amd64              2.5.1-1                          
>>> amd64        library for the Couchbase protocol, development files
>>> ii  libcouchbase2-bin                   2.5.1-1                          
>>> amd64        library for the Couchbase protocol
>>> ii  libcouchbase2-core:amd64            2.5.1-1                          
>>> amd64        library for the Couchbase protocol, core files
>>> ii  libcouchbase2-libev:amd64           2.5.1-1                          
>>> amd64        library for the Couchbase protocol (libev backend)
>>> ii  libcouchbase2-libevent:amd64        2.5.1-1                          
>>> amd64        library for the Couchbase protocol (libevent backend)
>>> 
>>> Only find 1 library: 
>>> 
>>> root@ma-fld02.drhm01:~# find / -name couchbase.h 2>/dev/null
>>> /usr/include/libcouchbase/couchbase.h
>>> 
>>> gem install seems to fail to find the libcouchbase libraries:
>>> 
>>> root@ma-fld02.drhm01:~# /opt/td-agent/embedded/bin/gem install couchbase -v 
>>> 1.3.13
>>> Building native extensions.  This could take a while...
>>> ERROR:  Error installing couchbase:
>>>     ERROR: Failed to build gem native extension.
>>> 
>>>     /opt/td-agent/embedded/bin/ruby extconf.rb
>>> checking for lcb_iops_wire_bsd_impl2(NULL, 0) in -lcouchbase... no
>>> 
>>> **********************************************************************
>>> * You must install libcouchbase >= 2.4.0
>>> * See http://www.couchbase.com/communities/c/ 
>>> <http://www.couchbase.com/communities/c/> for more details
>>> **********************************************************************
>>> 
>>> *** 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
>>>     --with-opt-include
>>>     --without-opt-include=${opt-dir}/include
>>>     --with-opt-lib
>>>     --without-opt-lib=${opt-dir}/lib
>>>     --with-make-prog
>>>     --without-make-prog
>>>     --srcdir=.
>>>     --curdir
>>>     --ruby=/opt/td-agent/embedded/bin/ruby
>>>     --with-libcouchbase-dir
>>>     --without-libcouchbase-dir
>>>     --with-libcouchbase-include
>>>     --without-libcouchbase-include=${libcouchbase-dir}/include
>>>     --with-libcouchbase-lib
>>>     --without-libcouchbase-lib=${libcouchbase-dir}/lib
>>>     --with-couchbaselib
>>>     --without-couchbaselib
>>> 
>>> extconf failed, exit code 1
>>> 
>>> Gem files will remain installed in 
>>> /opt/td-agent/embedded/lib/ruby/gems/2.1.0/gems/couchbase-1.3.13 for 
>>> inspection.
>>> Results logged to 
>>> /opt/td-agent/embedded/lib/ruby/gems/2.1.0/extensions/x86_64-linux/2.1.0/couchbase-1.3.13/gem_make.out
>>> 
>>> mkmf.log:
>>> 
>>> http://pastebin.com/PuNJVpdY <http://pastebin.com/PuNJVpdY>
>>> 
>>> -- 
>>> You received this message because you are subscribed to the Google Groups 
>>> "Couchbase" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>> email to couchbase+...@googlegroups.com <>.
>>> For more options, visit https://groups.google.com/d/optout 
>>> <https://groups.google.com/d/optout>.
>> 
>> 
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Couchbase" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to couchbase+...@googlegroups.com <javascript:>.
>> For more options, visit https://groups.google.com/d/optout 
>> <https://groups.google.com/d/optout>.
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Couchbase" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to couchbase+unsubscr...@googlegroups.com 
> <mailto:couchbase+unsubscr...@googlegroups.com>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
You received this message because you are subscribed to the Google Groups 
"Couchbase" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to couchbase+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to