Skip to content
mattalbright edited this page Aug 12, 2010 · 23 revisions

cannot find -lgssapi_krb5

When I try to install the curb-0.2.4.0 gem on 64 bit CentOS, I get:


# gem install ./curb-0.2.4.0.gem 
Building native extensions.  This could take a while...
ERROR:  Error installing ./curb-0.2.4.0.gem:
        ERROR: Failed to build gem native extension.

/usr/bin/ruby extconf.rb install ./curb-0.2.4.0.gem
checking for curl-config... yes
checking for curlinfo_redirect_time... yes
checking for curlinfo_response_code... yes
checking for curlinfo_filetime... yes
checking for curlinfo_redirect_count... yes
checking for curlinfo_os_errno... yes
checking for curlinfo_num_connects... yes
checking for curlinfo_ftp_entry_path... yes
checking for curl_version_ssl... yes
checking for curl_version_libz... yes
checking for curl_version_ntlm... yes
checking for curl_version_gssnegotiate... yes
checking for curl_version_debug... yes
checking for curl_version_asynchdns... yes
checking for curl_version_spnego... yes
checking for curl_version_largefile... yes
checking for curl_version_idn... yes
checking for curl_version_sspi... yes
checking for curl_version_conv... yes
checking for curlproxy_http... yes
checking for curlproxy_socks4... yes
checking for curlproxy_socks5... yes
checking for curlauth_basic... yes
checking for curlauth_digest... yes
checking for curlauth_gssnegotiate... yes
checking for curlauth_ntlm... yes
checking for curlauth_anysafe... yes
checking for curlauth_any... yes
checking for curle_tftp_notfound... yes
checking for curle_tftp_perm... yes
checking for curle_tftp_diskfull... yes
checking for curle_tftp_illegal... yes
checking for curle_tftp_unknownid... yes
checking for curle_tftp_exists... yes
checking for curle_tftp_nosuchuser... yes
creating curb_config.h
creating Makefile

make
Makefile:123: warning: overriding commands for target `/usr/lib/ruby/gems/1.8/gems/curb-0.2.4.0/lib'
Makefile:121: warning: ignoring old commands for target `/usr/lib/ruby/gems/1.8/gems/curb-0.2.4.0/lib'
gcc -I. -I/usr/lib64/ruby/1.8/x86_64-linux -I/usr/lib64/ruby/1.8/x86_64-linux -I. -DRUBY_EXTCONF_H=\"curb_config.h\"  -fPIC -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wall  -fPIC  -Wall  -c curb_easy.c
gcc -I. -I/usr/lib64/ruby/1.8/x86_64-linux -I/usr/lib64/ruby/1.8/x86_64-linux -I. -DRUBY_EXTCONF_H=\"curb_config.h\"  -fPIC -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wall  -fPIC  -Wall  -c curb_postfield.c
gcc -I. -I/usr/lib64/ruby/1.8/x86_64-linux -I/usr/lib64/ruby/1.8/x86_64-linux -I. -DRUBY_EXTCONF_H=\"curb_config.h\"  -fPIC -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wall  -fPIC  -Wall  -c curb_multi.c
gcc -I. -I/usr/lib64/ruby/1.8/x86_64-linux -I/usr/lib64/ruby/1.8/x86_64-linux -I. -DRUBY_EXTCONF_H=\"curb_config.h\"  -fPIC -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wall  -fPIC  -Wall  -c curb_errors.c
gcc -I. -I/usr/lib64/ruby/1.8/x86_64-linux -I/usr/lib64/ruby/1.8/x86_64-linux -I. -DRUBY_EXTCONF_H=\"curb_config.h\"  -fPIC -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wall  -fPIC  -Wall  -c curb.c
gcc -shared  -L"/usr/lib64" -o curb_core.so curb_easy.o curb_postfield.o curb_multi.o curb_errors.o curb.o  -lruby  -lpthread -ldl -lcrypt -lm   -lc -L/usr/kerberos/lib64 -lcurl -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lresolv -ldl -lidn -lssl -lcrypto -lz
/usr/bin/ld: skipping incompatible /usr/lib/libgssapi_krb5.so when searching for -lgssapi_krb5
/usr/bin/ld: skipping incompatible /usr/lib/libgssapi_krb5.a when searching for -lgssapi_krb5
/usr/bin/ld: cannot find -lgssapi_krb5
collect2: ld returned 1 exit status
make: *** [curb_core.so] Error 1

I can fix it by creating a bunch of missing /usr/lib64/foo.so files (by linking to the /usr/lib64/foo.so.x files), but it seems like there’s something that can be done to the build/install config to fix it. Did Redhat/CentOS really screw up and omit all the symbolic links for all those libraries? I had to create links for gssapi_krb5, krb5, com_err, ssl, crypto, and z.

ruby-1.8.5-5.el5_2.3
curl and curl-devel 7.15.5-2.el5

no such file to load — curb_core:

This is what I receive when require the lib:

Explain the problem.


>> require 'rubygems'
=> false
>> require 'curb'
LoadError: no such file to load -- curb_core
        from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
        from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
        from /Library/Ruby/Gems/1.8/gems/taf2-curb-0.2.3/ext/curb.rb:5
        from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
        from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:36:in `require'
        from (irb):2
</pre>
Ruby – ruby 1.8.6 (2008-03-03 patchlevel 114) [universal-darwin9.0]
Curl – curl 7.16.3
Curb – 0.2.3

Status: Unknown

Please include the output of ruby ext/extconf.rb, most likely this means you don’t have libcurl installed correctly.

Here you can write your found bugs:

Sample:

Explain the problem.

Here goes your code</pre>
Give version of ruby, curb and curl.

Status:

Clone this wiki locally