Как удалить openssl в /usr/lib?

После установки pg gem я получаю эту ошибку, когда пытаюсь запустить сервер на своем локальном компьютере:

/Users/foo/.rvm/gems/ree-1.8.7-2011.12/gems/pg-0.14.0/lib/pg_ext.bundle: dlopen(/Users/foo/.rvm/gems/ree-1.8.7-2011.12/gems/pg-0.14.0/lib/pg_ext.bundle, 9): Library not loaded: @loader_path/../lib/libssl.dylib (LoadError)
Referenced from: /usr/lib/libpq.5.dylib
Reason: Incompatible library version: libpq.5.dylib requires version 1.0.0 or later, but libssl.dylib provides version 0.9.8 - /Users/foo/.rvm/gems/ree-1.8.7-2011.12/gems/pg-0.14.0/lib/pg_ext.bundle

У меня есть актуальная версия openssl, установленная на моей машине через macports, но похоже, что гем смотрит на более старую версию, которую я установил в /usr/lib по какой-то причине (возможно, это связано с испорченным @loader_path ?).

«версия openssl» дает мне «OpenSSL 1.0.1c 10 мая 2012 г.»

и «который openssl» дает мне «/opt/local/bin/openssl», как я и ожидал

Любая помощь очень ценится. Спасибо!


person blim8183    schedule 30.07.2012    source источник
comment
НЕ удаляйте его из /usr/lib. Он принадлежит ОС, и любые приложения, которым он нужен, потерпят неудачу, если не найдут его, из-за чего вы пожалеете об его удалении. Это стандартное расположение для файлов библиотек, таких как libssl. Версия, установленная MacPorts, находится в необязательном месте, поэтому вам нужно указать Gem, где искать, когда он устанавливает файлы Pg.   -  person the Tin Man    schedule 30.07.2012
comment
Вы пробовали $ gem update libssl?   -  person AJcodez    schedule 30.07.2012


Ответы (1)


Я только что столкнулся с этой проблемой после обновления до Mountain Lion. Убедившись, что у меня правильная версия OpenSSL, я сделал следующее.

$ ls /Library/PostgreSQL/9.1/lib/libssl*

Предусмотрено следующее:

/Library/PostgreSQL/9.1/lib/libssl.1.0.0.dylib
/Library/PostgreSQL/9.1/lib/libssl.dylib
/Library/PostgreSQL/9.1/lib/libssl.a

Я скопировал файл так:

$ sudo cp /Library/PostgreSQL/9.1/lib/libssl.1.0.0.dylib /usr/lib/

Затем связаны:

$ cd /usr/lib
$ ln -sf libssl.1.0.0.dylib libssl.dylib

После этого я снова попробовал rails s, и та же ошибка появилась с другим файлом, поэтому я повторил процесс (libcrypto):

 requires version 1.0.0 or later, but libcrypto.0.9.8.dylib 
 provides version 0.9.8

so:

$ sudo cp /Library/PostgreSQL/9.1/lib/libcrypto.1.0.0.dylib /usr/lib/
$ cd /usr/lib
$ ln -sf libcrypto.1.0.0.dylib libcrypto.dylib

См. также ответы на этот вопрос для справки: ошибка установки python pip install psycopg2

person RyanB    schedule 20.08.2012