Problem with new ruby install and openssl.rb (on Ubuntu)

ruby-talkers,

I’ve bumped into an issue with ruby and ssl.

I’m trying to run a rake command which aborts because it cannot find
openssl.rb.

I followed these steps:

  • mkdir /rho; chown phor /rho

  • wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p72.tar.bz2

  • tar jxf ruby-1.8.7-p72.tar.bz2

  • cd ruby-1.8.7-p72

  • vi ext/Setup and uncomment these lines:
    bigdecimal
    curses
    digest
    digest/md5
    digest/rmd160
    digest/sha1
    digest/sha2
    iconv
    openssl
    readline
    socket
    strscan
    thread
    zlib

  • ./configure --prefix=/rho

  • make

  • make install

  • create a 1-line file (in /rho/.rho) and then dot-it: export
    PATH=/rho/bin:${PATH}:.

I saw this:

$ /rho/bin/ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]

Next, I installed gems:

I saw this:

$ /rho/bin/gem -v
1.3.1

Next, I installed rails:

gem install rails --no-rdoc --no-ri

I saw this:

$ /rho/bin/rails -v
Rails 2.2.2

Next, I did this:

$ gem install rspec-rails rake --no-rdoc --no-ri

I saw this:

$ /rho/bin/gem list

*** LOCAL GEMS ***

actionmailer (2.2.2)
actionpack (2.2.2)
activerecord (2.2.2)
activeresource (2.2.2)
activesupport (2.2.2)
rails (2.2.2)
rake (0.8.3)
rspec (1.1.12)
rspec-rails (1.1.12)

Next, I did this:

cd ~/software/
git clone git://github.com/rhomobile/rhosync.git
mkdir log; touch log/development.log
/rho/bin/rake gems:install

I saw this:

(in /phor/software/rhosync)
rake aborted!
no such file to load – openssl
(See full trace by running task with --trace)

To me,
It looks like openssl.rb is missing somewhere.

I assume it should be under /rho which is where I installed ruby.

I’m on ubuntu-linux and I do see openssl development packages inside of
my OS:

$ apt-cache search libssl
cl-plus-ssl - A simple Common Lisp interface to OpenSSL
dcmtk - The OFFIS DICOM toolkit command line utilities
libdcmtk1 - The OFFIS DICOM toolkit runtime libraries
libdcmtk1-dev - The OFFIS DICOM toolkit development libraries and
headers
libssl-ocaml - OCaml bindings for OpenSSL
libssl-ocaml-dev - OCaml bindings for OpenSSL
libssl-dev - SSL development libraries, header files and documentation
libssl0.9.8 - SSL shared libraries
libssl0.9.8-dbg - Symbol tables for libssl and libcrypto

Also, I see this:

$ apt-cache search libopenssl-ruby
libopenssl-ruby - OpenSSL interface for Ruby
libopenssl-ruby1.9 - OpenSSL interface for Ruby 1.9
ruby1.8 - Interpreter of object-oriented scripting language Ruby 1.8
libopenssl-ruby1.8 - OpenSSL interface for Ruby 1.8

Clues anyone?

Phor G. wrote:

ruby-talkers,

I’ve bumped into an issue with ruby and ssl.

I’m trying to run a rake command which aborts because it cannot find
openssl.rb.

Try going to your ruby-1.8.7-p72/ext/zlib/ directory, then run:

ruby extconf.rb

If that succeeds, then:

make
make install

libssl-ocaml-dev - OCaml bindings for OpenSSL
libopenssl-ruby1.8 - OpenSSL interface for Ruby 1.8

Clues anyone?

Did you install Ruby via apt-get and by compiling it from the source?
Maybe you ended up with parallel versions?

-Justin

Justin C. wrote:

Did you install Ruby via apt-get and by compiling it from the source?
Maybe you ended up with parallel versions?

-Justin

Justin,

Yes, I am trying to install a parallel version.
The 2nd version is from source.

-Phor

On Feb 26, 2009, at 18:00, Phor G. wrote:

rake aborted!
no such file to load – openssl
(See full trace by running task with --trace)

To me,
It looks like openssl.rb is missing somewhere.

Firstoff, does /rho/bin/ruby -ropenssl -e0 work?

If it doesn’t go back to the ruby source you built from and check ext/
openssl/mkmf.log

If you have openssl, are you sure that the Rakefile in this step is
running files under /rho/bin?

Also, I don’t see output for rake --trace gems:install, it may give
you an answer to your problem.

Eric H. wrote:

Firstoff, does /rho/bin/ruby -ropenssl -e0 work?

No it does not work.

I cannot find openssl.rb anywhere under /rho

-Phor

On Feb 26, 2009, at 22:52 , Phor G. wrote:

Eric H. wrote:

Firstoff, does /rho/bin/ruby -ropenssl -e0 work?

No it does not work.

I cannot find openssl.rb anywhere under /rho

as eric said:

If it doesn’t[, then] go back to the ruby source you built from and
check ext/openssl/mkmf.log

that’ll have all the relevant info you need.

Eric H. wrote:

If it doesn’t go back to the ruby source you built from and check ext/
openssl/mkmf.log

Eric,

I think you offer a good clue.

ext/openssl/mkmf.log is large so I will not post it here.

The first line inside of it looks interesting:

have_library: checking for t_open() in -lnsl… -------------------- no

I’m not a C programmer but it looks like the “no” at the end of the line
is telling me that something is missing.

Also the last line in the log file says this:

package configuration for openssl is not found

It’s obvious that I need to help configure and/or make find the package
configuration for openssl.

Perhaps configure has a command line option that says all the libraries
are under /usr?

So it looks like I have 2 problems:

  1. t_open in -lnsl … no
  2. configure does not know that openssl is where apt-get put it (under
    /usr).

Anyone out there compile ruby from source and have openssl.rb get
created?

-Phor

Brian C. wrote:

To see what’s installed, use: dpkg-query -l | grep ssl

Then most likely you’ll want to do: apt-get install libssl-dev

But if you’re building from source, you’ll need libssl-dev.

HTH,

Brian.

Brian,
Your post was an enormous help.

dpkg-query is now my friend.

Now I see this:
$ /rho/bin/irb
irb(main):001:0> require ‘openssl’
=> true
irb(main):002:0>

Thanks!!
-4

ps: another thing that I learned is that my editing of ext/Setup was
unnecessary.

Phor G. wrote:

I’m on ubuntu-linux and I do see openssl development packages inside of
my OS:

$ apt-cache search libssl
cl-plus-ssl - A simple Common Lisp interface to OpenSSL
dcmtk - The OFFIS DICOM toolkit command line utilities
libdcmtk1 - The OFFIS DICOM toolkit runtime libraries
libdcmtk1-dev - The OFFIS DICOM toolkit development libraries and
headers
libssl-ocaml - OCaml bindings for OpenSSL
libssl-ocaml-dev - OCaml bindings for OpenSSL
libssl-dev - SSL development libraries, header files and documentation
libssl0.9.8 - SSL shared libraries
libssl0.9.8-dbg - Symbol tables for libssl and libcrypto

No you don’t… apt-cache shows you which packages are available for
you to install, not ones you actually have installed.

To see what’s installed, use: dpkg-query -l | grep ssl

Then most likely you’ll want to do: apt-get install libssl-dev

Also, I see this:

$ apt-cache search libopenssl-ruby
libopenssl-ruby - OpenSSL interface for Ruby
libopenssl-ruby1.9 - OpenSSL interface for Ruby 1.9
ruby1.8 - Interpreter of object-oriented scripting language Ruby 1.8
libopenssl-ruby1.8 - OpenSSL interface for Ruby 1.8

If you were using Ubuntu’s ruby1.8 package, then you could just install
Ubuntu’s libopenssl-ruby.

But if you’re building from source, you’ll need libssl-dev.

HTH,

Brian.