Unsupported digest algorithm (sha256).

Y

yf kuanfai

Hi,

Anybody can help me on this error:

/usr/local/lib/ruby/1.8/openssl/digest.rb:55:in `initialize':
Unsupported digest algorithm (sha256). (RuntimeError)
from /usr/local/lib/ruby/1.8/openssl/digest.rb:55:in
`initialize'
from
/export/home/prjer/er/app/controllers/register_controller.rb:7:in `new'
from
/export/home/prjer/er/app/controllers/register_controller.rb:7
from
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'
from
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`require'



but i can run the command:

$ ruby -ropenssl -e 'p OpenSSL::Digest::Digest.new("sha256")'
#<OpenSSL::Digest::Digest:
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855>
$ ruby -e "puts require('openssl')"
true

from other's post, i also get this:
$ gem search openSSL -r

*** REMOTE GEMS ***

jruby-openssl (0.7.2)
JRuby-OpenSSL (0.1)
openssl-extensions (1.0.0)
openssl-nonblock (0.2.1)
pftg-jruby-openssl (0.5.3)
ruby-hmac-openssl (0.1.0)
tem_openssl (0.3.6)


Appreciate the help in advance.
 
B

Brian Morearty

Hi,

The fact that you can use sha256 from the command line but not in your
app makes me wonder: is it possible you are using a different
installation of Ruby in your app than on the command line?

According to the stack dump, your app is using the one in
/usr/local/lib.

I think this will tell you which Ruby your command line is using:

$ ruby -e 'puts Gem.ruby'

Brian Morearty
 
Y

yf kuanfai

Hi Brian,

Thanks for your suggestion, but I get the error message after running
the command:

$ ruby -e 'puts Gem.ruby'
-e:1: uninitialized constant Gem (NameError)
 
Y

yf kuanfai

Thanks Brian for your prompt response. Following are my environment
settings:

$ which ruby
/usr/local/bin/ruby

$ gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.1
- RUBY VERSION: 1.8.7 (2008-08-11 patchlevel 72) [sparc-solaris2.10]
- INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /usr/local/bin/ruby
- EXECUTABLE DIRECTORY: /usr/local/bin
- RUBYGEMS PLATFORMS:
- ruby
- sparc-solaris-2.10
- GEM PATHS:
- /usr/local/lib/ruby/gems/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://gems.rubyforge.org/


do i need to re-install my ruby?
 
B

Brian Morearty

do i need to re-install my ruby?

Yes, that's what I would do. In fact that's what I did when I had a
similar problem on my Mac on the weekend, although in my case there was
no difference in behavior between the command line and my app.

My notes are here:
http://ilikestuffblog.com/2011/01/22/how-to-fix-ruby-error-unsupported-digest-algorithm-sha256/

Unlike you, I was using rvm. It's something to consider as long as
you're reinstalling. Supposedly rvm works on Solaris although there
isn't a dedicate page for Solaris on the rvm site. There is this:
http://rvm.beginrescueend.com/os/other/

A few notes:
- If you recompile ruby, it might help to download openssl from
http://openssl.org and then use whatever command-line option points the
ruby compiler to that downloaded version. It didn't work for me but you
have have more luck.
- Here's someone else who solved a similar problem by downloading
openssl--but he was using rvm:
http://ionrails.com/2010/12/25/deploy-to-ec2-with-rubber/

Good luck! This could take a while. It took me several hours to get
working.

Brian
 
B

botp

/usr/local/lib/ruby/1.8/openssl/digest.rb:55:in `initialize':
Unsupported digest algorithm (sha256). (RuntimeError)
=A0 =A0 =A0 =A0from /usr/local/lib/ruby/1.8/openssl/digest.rb:55:in
`initialize'
=A0 =A0 =A0 =A0from
/export/home/prjer/er/app/controllers/register_controller.rb:7:in `new'
=A0 =A0 =A0 =A0from
/export/home/prjer/er/app/controllers/register_controller.rb:7
=A0 =A0 =A0 =A0from
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'
=A0 =A0 =A0 =A0from
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`require'

that errs comes from your app
but i can run the command:

$ ruby -ropenssl -e 'p OpenSSL::Digest::Digest.new("sha256")'
#<OpenSSL::Digest::Digest:
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855>
$ ruby -e "puts require('openssl')"
true

the simple ruby command works. openssl is working.

one of the gems in your app is screwing openssl. suggest to list all
the gems your app is using and open the gem one at a time until the
digest returns the error. this way you can catch the offending gem

kind regards -botp
 
Y

yf kuanfai

I have just re-installed my ruby and now it gives new error. I feel
really frustrating that ruby is so hard to install.

/usr/local/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:259:in
`require_frameworks': ld.so.1: ruby: fatal: relocation error: file
/usr/local/lib/ruby/1.8/sparc-solaris2.10/openssl.so: symbol
EC_GROUP_new_curve_GF2m: referenced symbol not found -
/usr/local/lib/ruby/1.8/sparc-solaris2.10/openssl.so (RuntimeError)
from
/usr/local/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:133:in
`process'
from
/usr/local/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in
`send'
from
/usr/local/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in
`run'
from /export/home/prdem/em/public/../config/environment.rb:13
from /export/home/prdem/em/public/dispatch.fcgi:21:in `require'
from /export/home/prdem/em/public/dispatch.fcgi:21



and i checked my new installation is exactly the same as another server
which is working fine.


# /usr/local/bin/gem check --alien
Performing the 'alien' operation
rake-0.8.7 is error-free

activesupport-2.2.2 is error-free

activesupport-2.3.2 is error-free

composite_primary_keys-2.2.2 is error-free

fastercsv-1.4.0 is error-free

rails-2.2.2 has 2 problems
lib/fcgi_handler.rb:
installed file doesn't match original from gem

/usr/local/lib/ruby/gems/1.8/cache/rails-2.2.2.gem:
Unmanaged files in gem: ["lib/fcgi_handler.rb.orig"]


fcgi-0.8.7 has 1 problems
/usr/local/lib/ruby/gems/1.8/cache/fcgi-0.8.7.gem:
Unmanaged files in gem: ["ext/fcgi/fcgi.so", "ext/fcgi/fcgi.o",
"ext/fcgi/Makefile", "ext/fcgi/mkmf.log", "lib/fcgi.so"]


activeresource-2.2.2 is error-free

activerecord-2.2.2 is error-free

actionpack-2.2.2 is error-free

actionmailer-2.2.2 is error-free

activerecord-oracle-adapter-1.0.0.9250 is error-free

#
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,981
Messages
2,570,188
Members
46,732
Latest member
ArronPalin

Latest Threads

Top