Lion: проблема с установкой рубинов в RVM - проблема, связанная с openssl - PullRequest
4 голосов
/ 23 сентября 2011

Я в отчаянии, в течение двух (!!) дней без решения проблемы со следующей задачей.

После обновления до Lion я хотел установить дополнительные рубины, используя самую последнюю версию rvm.

Вот что происходит, когда я потом вызываю bundler:

/Users/felix/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': dlopen(/Users/janroesner/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/x86_64-darwin11.1.0/digest/sha1.bundle, 9): Symbol not found: _SHA1_Init (LoadError)

Хорошо, проблема openssl. Таким образом, я проверил, что нет openssl, но системного в / usr с библиотеками в / usr / lib и заголовками в / usr / include / openssl. Проверьте.

Я решил установить более свежую версию с brew. После этого никакой ruby ​​не компилируется с ошибкой, что BN_rand_range и BN_peudo_rand_range уже определены.

Кажется, более строгая проверка типов самой последней версии gcc, поэтому я раскомментировал строки 411 и 412 в /usr/include/openssl/bn.h, которые привели к конфликту, поскольку ruby ​​определяет оба по отдельности. Теперь ruby ​​компилируется, но я получаю ту же ошибку. Символ не найден: _SHA1_Init.

Итак, я удалил комментарии из заголовочного файла openssl bn.h, который я поместил туда раньше, и попробовал обратное. Я прокомментировал эти строки в ~ / .rvm / src / ruby-1.9.2-p290 / ext / openssl / openssl_missing.h

Тот же результат.

После этого я полностью удалил ~ / .rvm, переустановил его и ... возникла та же проблема.

Теперь я попробовал:

rvm pkg install openssl
rvm remove 1.9.2-p290
rvm install 1.9.2-p290 -C --with-openssl-dir=$rvm_path/usr

Тот же результат.

Я в отчаянии. Кто-нибудь может помочь? С уважением Felix

Ответы [ 2 ]

14 голосов
/ 24 сентября 2011

Для тех, кто когда-либо сталкивался с этой проблемой на Lion ... это некоторая проблема с дублирующимися заголовками, которые приходят из openssl.Вы можете просто установить openssl локально и указать rvm использовать эту локальную версию openssl.

Вы можете скомпилировать opnessl вручную с префиксом / usr / local или просто позволить rvm выполнить работу:

rvm pkg install openssl

И затем указать rvm связать эту версию во время установки ruby:

rvm install 1.9.2 --with-openssl-dir=/path/to/your/home/.rvm/usr

Если у вас уже есть локальная установка, замените ее на:

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

НЕ ПЫТАЙТЕСЬ, что часто читается:

rvm install 1.9.2 -C --with-openssl-dir=/path/to/your/home/.rvm/usr

Это не работает.

0 голосов
/ 23 сентября 2011

Я только что прошел этот урок, и он работал без проблем: Getting Rails Up: http://www.frederico -araujo.com / 2011/07/30 / Установка-rails-on-os-x-lion-with -homebrew-РВМ-и-MySQL /

...