я получаю сообщение об ошибке «Нет такого файла для загрузки -- 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
вуаля :)