dyld: Бібліотека не завантажена: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib


147

Я встановив пари через homebrew, а потім негайно захотів перейти до проекту, виконавши, vapor new Helloале потім отримав таке повідомлення назад у терміналі:

dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
Referenced from: /usr/local/bin/vapor
Reason: image not found
zsh: abort      vapor new Hello

Я спробував деякі підходи, щоб виправити це, як видалити та перевстановити openssl через brew, але це не вийшло. Також спробував щось, що я знайшов в Інтернеті, але нічого не вийшло. Я припускаю, що це стосується лише пари, що працює з версією 1.0.0, але не з 1.1.1, і це те, що у мене є. Я думаю, що мені потрібно знизити до 1.0.0, але як це зробити? Я на MacOS Catalina, якщо це має значення. Заздалегідь спасибі.


Підтримка OpenSSL 1.1 додана до Vapor: github.com/vapor/open-crypto/pull/75
— Michal Cichon

Це може бути корисним для інших: < stackoverflow.com/a/59224109/3776039 >
— unifreak

Я використовував цей метод, щоб виправити /usr/local/bin/wget(що було викрито plenv install-cpanm)
— DouglasDD

Відповіді:


434

Перехід на старіший пакет OpenSL

brew switch openssl 1.0.2s

Або, залежно від вашої точної конфігурації системи, вам може знадобитися перейти на іншу версію. Перевірте вихід ls -al /usr/local/Cellar/opensslна номер версії, на яку потрібно перейти.

brew switch openssl 1.0.2q
# or
brew switch openssl 1.0.2r
# or 
brew switch openssl 1.0.2s
# or
brew switch openssl 1.0.2t
# etc...

20
Це найкраще рішення і найпростіше. І все ж Homebrew видалить застарілі пакети. Не впевнений, коли це рішення перестане працювати
— tom10271

3
@Leopathu Ви можете пояснити, чому це має бути схвалена відповідь, а не та, яку я схвалив? Якщо це краща відповідь, я все-таки можу це схвалити.
— Кронай

10
Ця робота для мене з невеликою зміною останньої літери "r" перемикач пивоваріння openssl 1.0.2r на MacOS Catalina
— juanitourquiza

4
найкраще рішення. Перемикач пивоваріння opensl 1.0.2t у моєму випадку
— Золота курка

14
brew switch openssl 1.0.2tпросто працював на мене. Спасибі людина.
— Джейсон R

71

Спробуйте використовувати install_name_tool:

sudo install_name_tool -change /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/opt/openssl/lib/libssl.1.1.dylib $(which vapor)
sudo install_name_tool -change /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/opt/openssl/lib/libcrypto.1.1.dylib $(which vapor)

У моєму випадку він починає працювати, коли я користувався install_name_tool. Порядок параметра такий: старе значення (неправильне), потім нове значення (там, де у вас є openssl) і шлях до пари (який можна легко пройти $(which vapor).


4
Нижній підхід вирішив це для мене, велике спасибі!
— Cronay

2
Дякую!! для мене працював install_name_tool
— Ендрю Морріс

1
Дуже дякую, insta_name_tool зробив мій день!
— Седрик Моро

11
заварити оновлення && заварити оновлення буде оновити всі пакети, це викликає величезне проблема
— tom10271

2
так, будь ласка, видаліть brew upgradeз відповіді @ michal-cichon
— macool

65

brew switch openssl 1.0.2s

працював для мене на "macOS Mojave", "версії 10.14.6".


Дякую, що мій Tableau 2019.10.3 не відкривався в Mac OS Mojave, і ця команда допомогла вирішити це!
— Ісаак Філіп

brew switch openssl 1.0.2p
— Евхз


28

Для MacOS 10.15 Catalina спробуйте встановити попередній openssl:

brew update && brew upgrade
brew uninstall --ignore-dependencies openssl
brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

25

У мене була така ж проблема. Я вирішив це, виконавши ці 2 команди:

brew uninstall vapor
brew install vapor/tap/vapor

Це спрацювало.


Я просто оновив клієнтський інструмент, а не пара, але wget у моєму випадку. Потім застосовано пізнішу версію opensslbrew upgrade vapor
— flurdy

24

спочатку перерахуйте подробиці встановленої версії opensl (або інших програм) за:

$ls -al /usr/local/Cellar/openssl*
/usr/local/Cellar/openssl:
total 0
drwxr-xr-x    3 mba  staff    96 Nov 30 17:18 .
drwxrwxr-x  170 mba  admin  5440 Apr  8 02:03 ..
drwxr-xr-x   13 mba  staff   416 Nov 21 03:13 1.0.2t

/usr/local/Cellar/openssl@1.1:
total 0
drwxr-xr-x    4 mba  staff   128 Apr  7 18:35 .
drwxrwxr-x  170 mba  admin  5440 Apr  8 02:03 ..
drwxr-xr-x   14 mba  staff   448 Oct  1  2019 1.1.1d
drwxr-xr-x   14 mba  staff   448 Apr  7 18:35 1.1.1f

як вище, у моєму mac є лише одна "правильна" версія "openssl". потім переключіться на нього:

$brew switch openssl 1.0.2t                                 
Cleaning /usr/local/Cellar/openssl/1.0.2t
Opt link created for /usr/local/Cellar/openssl/1.0.2t

Дякую. Це врятувало мені день.
— khiav reoy

Дякую! Це спрацювало!
— ksankar

Це має бути прийнята відповідь!
— ActualAl

Я витратив цілий день на встановлення, перевстановлення версій рейок, дорогоцінних каменів mysql2 з різними прапорами та параметрами. Це спрацювало як шарм! Дякую, друже!
— Мартінас Юркус


18
brew switch openssl 1.0.2r

він працює для мене, macOS Mojave, версія 10.14.6


Це працює для мене (macOS Catalina, ruby ​​2.4.1, рейки 5.2.2, openssl 1.1.1f). Переключено на 1.0.2 с.
— AntonAL



3

Це може бути проблемою через те, що старіша версія варіння та встановлена ​​byobu, яка потребує нової залежності, щоб вирішити цю проблему, запустіть наступну команду

brew update && brew upgrade
brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

1
Простий brew update && brew upgradeзробив трюк для мене.
— valcanaia

3

Пропозиція brew update && brew upgradeяк рішення не є гарною відповіддю, і оскільки ця помилка з'являється в більшості випадків через виконання цього ...

Перейдіть на попередню версію, з якою ви використовували лише: brew switch openssl XXXі все.


Хлопці з Google, фактична відповідь тут.
— TrungDQ

2

У мене була подібна проблема, і на основі цього та інших коментарів ось що трапилось і працювало:

➜ brew update && brew upgrade && brew install openssl
remote: Repository not found.
fatal: repository 'https://github.com/Homebrew/homebrew-dupes/' not found
Error: homebrew/homebrew-dupes does not exist! Run `brew untap homebrew/homebrew-dupes` to remove it.
...
➜ brew untap homebrew/homebrew-dupes
➜ brew update && brew upgrade && brew install openssl

Це було після роботи над ним годинами, але я вперше побачив доморошку. Не впевнений, як Homebrew знав, що встановити, але, здавалося, все встановлено з нуля. macOS Каталіна, зш. Я думаю, що початкова проблема виникла через Каталіну

Помилка, яку я отримував:

dlopen(/Users/gscar/.gem/ruby/2.7.0/gems/pg-1.2.2/lib/pg_ext.bundle, 9): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib (LoadError)
  Referenced from: /usr/local/opt/postgresql/lib/libpq.5.dylib
  Reason: image not found - /Users/gscar/.gem/ruby/2.7.0/gems/pg-1.2.2/lib/pg_ext.bundle

0

Якщо у вас немає Homebrew або не знаєте, що це

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew update && brew upgrade
brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Або якщо у вас вже встановлений Homebrew

brew update && brew upgrade
brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Це працює для мене на Mac 10.15


0

Я зіткнувся з цією помилкою з mysql (версія: 5.6.46_2), Mac (Mojave 10.14.5):

    brew update && brew upgrade
    brew now setup_mysql
    echo ‘export PATH=“/usr/local/opt/mysql56/bin:$PATH”’ >> 
    ~/.bash_profile
    /usr/local/opt/mysql56/bin/mysql.server start
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.