RubyOnRails/OSX: нет такого файла для загрузки openssl

я получаю сообщение об ошибке «Нет такого файла для загрузки -- openssl» при попытке открыть страницу!

я гуглил уже несколько часов, и ни одно из найденных решений не сработало для меня :(

я на OSX (10.6.6) под управлением ruby ​​1.9.2p136 (установлен через rvm (многопользовательская установка))

вот список моих местных жемчужин:

*** LOCAL GEMS ***

abstract (1.0.0)  
actionmailer (3.0.4, 3.0.3)  
actionpack (3.0.4, 3.0.3)  
activemodel (3.0.4, 3.0.3)  
activerecord (3.0.4, 3.0.3)  
activeresource (3.0.4, 3.0.3)  
activesupport (3.0.4, 3.0.3)  
arel (2.0.8, 2.0.7, 2.0.4)  
bcrypt-ruby (2.1.4)  
builder (3.0.0, 2.1.2)  
bundler (1.0.10)  
devise (1.1.5, 1.1.4)  
erubis (2.6.6)  
haml (3.0.25)  
i18n (0.5.0, 0.4.2)  
mail (2.2.15, 2.2.10)  
mime-types (1.16)  
openssl-extensions (1.1.0)  
polyglot (0.3.1)  
rack (1.2.1)  
rack-mount (0.6.13)  
rack-test (0.5.7, 0.5.6)  
rails (3.0.4, 3.0.3)  
railties (3.0.4, 3.0.3)  
rake (0.8.7)  
sqlite3 (1.3.3)  
sqlite3-ruby (1.3.3, 1.3.2)  
thor (0.14.6)  
treetop (1.4.9)  
tzinfo (0.3.24, 0.3.23)  
warden (1.0.3)  

пожалуйста, помогите... я новичок в рубине на рельсах и полностью потерялся здесь :(

Спасибо

Матиас

Обновление:
я попытался перекомпилировать openssl вручную, выполнив это (как пользователь root):

cd /usr/local/rvm/src/ruby-1.9.2-p136/ext/openssl  
ruby extconf.rb  
make  
sudo make install  

но ruby ​​extconf.rb выдал ошибку:

=== OpenSSL for Ruby configurator ===  
=== Checking for system dependent stuff... ===  
checking for t_open() in -lnsl... no  
checking for socket() in -lsocket... no  
checking for assert.h... yes  
=== Checking for required stuff... ===  
checking for openssl/ssl.h... no  
=== Checking for required stuff failed. ===  

Makefile wasn't created. Fix the errors above.

что я могу с этим поделать?

Обновление 2:
теперь установлен openssl через доморощенный:

brew install openssl  
sudo brew link openssl  

все заработало, ошибок нет!

затем сделал следующее:

rvm remove 1.9.2
rvm install 1.9.2 --with-openssl-dir=/usr/local/etc

последний вывел это:

/usr/local/rvm/rubies/ruby-1.9.2-p136, this may take a while depending on your cpu(s)...

ruby-1.9.2-p136 - #fetching   
ruby-1.9.2-p136 - #extracting ruby-1.9.2-p136 to /usr/local/rvm/src/ruby-1.9.2-p136  
ruby-1.9.2-p136 - #extracted to /usr/local/rvm/src/ruby-1.9.2-p136  
ruby-1.9.2-p136 - #configuring  
ruby-1.9.2-p136 - #compiling  
Error running 'make ', please read /usr/local/rvm/log/ruby-1.9.2-p136/make.log  
There has been an error while running make. Halting the installation.  
root@MatthiasMacBookPro~$ Error running 'make ', please read /usr/local/rvm/log/ruby-1.9.2-p136/make.log  
Error: Only takes 0 or 1 arguments  

получить make.log здесь: http://matthias-ptx4s.posterous.com/private/kksnjfiJoB< /а>

Обновление 3:

когда я переключаюсь через rvm на ruby ​​​​1.8.5, все работает. так почему это не происходит, когда я переключаюсь на 1.9.2-head!?

Решение:

Openssl каким-то образом был скомпилирован для 32-битной версии. я исправил это, удалив все версии openssl и переустановив его через порты Mac:

sudo port install openssl +universal

Порты Mac устанавливают openssl в /opt/local по умолчанию, поэтому вам нужно добавить этот путь при установке ruby:

sudo rvm install 1.9.2 --with-openssl-dir=/opt/local

вуаля :)


person Matthias    schedule 13.02.2011    source источник


Ответы (1)


Удалил мой комментарий useless, так как Матиас нашел решение.

person Augusto    schedule 13.02.2011