Skip to content

Instantly share code, notes, and snippets.

@aklap
Created October 17, 2016 04:25
Show Gist options
  • Star 41 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save aklap/e885721ef15c8668ed0a1dd64d2ea1a7 to your computer and use it in GitHub Desktop.
Save aklap/e885721ef15c8668ed0a1dd64d2ea1a7 to your computer and use it in GitHub Desktop.
Resolving missing link to libcrypto/openssl on OSX
@rlirli
Copy link

rlirli commented May 12, 2020

brew install openssl installs the newest 1.1 version of openSSL.
Therefore the linking commands with libcrypto version 1.0.0 proposed above would not work.

ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/ should be
ln -s /usr/local/opt/openssl/lib/libcrypto.1.1.dylib /usr/local/lib/. However, this did not work for my use case either.


What did work was downgrading to openSSL 1.0 using @igormelao's code from this issue:

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

There are 2 uninstall commands to make sure any OpenSSL v1.1 is removed, and any dead v1.0 is removed, before installing v1.0.

@vcjuliocesar
Copy link

hi,i have a problem, i need to install mongo in macos catalina,but it not work my code is this
sudo pecl install mongo
WARNING: "pecl/mongo" is deprecated in favor of "channel:///mongodb"
downloading mongo-1.6.16.tgz ...
Starting to download mongo-1.6.16.tgz (210,341 bytes)
.............................................done: 210,341 bytes
118 source files, building
running: phpize
Configuring for:
PHP Api Version: 20131106
Zend Module Api No: 20131226
Zend Extension Api No: 220131226
Build with Cyrus SASL (MongoDB Enterprise Authentication) support? [no] :
building in /private/tmp/pear/temp/pear-build-rootpBkTQl/mongo-1.6.16
running: /private/tmp/pear/temp/mongo/configure --with-php-config=/usr/local/opt/php@5.6/bin/php-config --with-mongo-sasl=no
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for a sed that does not truncate output... /usr/bin/sed
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking how to run the C preprocessor... cc -E
checking for icc... no
checking for suncc... no
checking whether cc understands -c and -o together... yes
checking for system library directory... lib
checking if compiler supports -R... no
checking if compiler supports -Wl,-rpath,... yes
checking build system type... x86_64-apple-darwin19.4.0
checking host system type... x86_64-apple-darwin19.4.0
checking target system type... x86_64-apple-darwin19.4.0
checking for PHP prefix... /usr/local/Cellar/php@5.6/5.6.40
checking for PHP includes... -I/usr/local/Cellar/php@5.6/5.6.40/include/php -I/usr/local/Cellar/php@5.6/5.6.40/include/php/main -I/usr/local/Cellar/php@5.6/5.6.40/include/php/TSRM -I/usr/local/Cellar/php@5.6/5.6.40/include/php/Zend -I/usr/local/Cellar/php@5.6/5.6.40/include/php/ext -I/usr/local/Cellar/php@5.6/5.6.40/include/php/ext/date/lib
checking for PHP extension directory... /usr/local/Cellar/php@5.6/5.6.40/pecl/20131226
checking for PHP installed headers prefix... /usr/local/Cellar/php@5.6/5.6.40/include/php
checking if debug is enabled... no
checking if zts is enabled... no
checking for re2c... no
configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
checking for gawk... no
checking for nawk... no
checking for awk... awk
checking if awk is broken... no
checking whether to enable Mongo extension... yes, shared
checking Build with OpenSSL support... yes
checking for pkg-config... /usr/local/bin/pkg-config
checking for OpenSSL version... >= 0.9.6
checking for CRYPTO_free in -lcrypto... no
configure: error: libcrypto not found!
ERROR: `/private/tmp/pear/temp/mongo/configure --with-php-config=/usr/local/opt/php@5.6/bin/php-config --with-mongo-sasl=no' failed

help me pleace!

@rlirli
Copy link

rlirli commented May 18, 2020

@vcjuliocesar Did you try downgrading your openSSL as I mentioned in the comment before:

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

There are 2 uninstall commands to make sure any OpenSSL v1.1 is removed, and any dead v1.0 is removed, before installing v1.0.

@avkermanov
Copy link

@rlirli Thank you so much!This is it really the only solution helped me (for MacOS Catalina)

@vcjuliocesar Did you try downgrading your openSSL as I mentioned in the comment before:

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

There are 2 uninstall commands to make sure any OpenSSL v1.1 is removed, and any dead v1.0 is removed, before installing v1.0.

@jugatsu
Copy link

jugatsu commented Jun 11, 2020

brew uninstall --ignore-dependencies openssl
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/30fd2b68feb458656c2da2b91e577960b11c42f4/Formula/openssl.rb

ref: https://forums.meteor.com/t/mongodump-cannot-find-openssl-version-on-macos-catalina/50912/3

@mr-bat
Copy link

mr-bat commented Jun 18, 2020

brew uninstall --ignore-dependencies openssl
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/30fd2b68feb458656c2da2b91e577960b11c42f4/Formula/openssl.rb

ref: https://forums.meteor.com/t/mongodump-cannot-find-openssl-version-on-macos-catalina/50912/3

thanks!

@taozuhong
Copy link

this command solve my problem on github CI job:
cp /usr/local/opt/openssl@1.1/lib/pkgconfig/*.pc /usr/local/lib/pkgconfig/

@anantonton
Copy link

@vcjuliocesar Did you try downgrading your openSSL as I mentioned in the comment before:

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

There are 2 uninstall commands to make sure any OpenSSL v1.1 is removed, and any dead v1.0 is removed, before installing v1.0.

This is working for me!

@scalaview
Copy link

scalaview commented Aug 22, 2020

I got another problem when I uninstall 1.1 after install 1.0.

ruby-2.6.5/lib/ruby/2.6.0/x86_64-darwin17/digest/sha1.bundle, 9): Library not loaded: /usr/local/opt/openssl@1.1/lib/libssl.1.1.dylib

so I figure out to install both.

at first, cp the /usr/local/opt/openssl to /usr/local/Cellar/openssl/1.0.2t
then, uninstall 1.0 and reinstall 1.1.

brew uninstall openssl
brew install openssl@1.1

finally, link the old version to /usr/local/opt/openssl with below

ln -sf /usr/local/Cellar/openssl/1.0.2t /usr/local/opt/openssl

@jokumer
Copy link

jokumer commented Oct 16, 2020

brew uninstall --ignore-dependencies openssl
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/30fd2b68feb458656c2da2b91e577960b11c42f4/Formula/openssl.rb

ref: https://forums.meteor.com/t/mongodump-cannot-find-openssl-version-on-macos-catalina/50912/3

Currently last command errors with
Error: Calling Installation of openssl from a GitHub commit URL is disabled! Use 'brew extract openssl' to stable tap on GitHub instead.

This worked for me

brew uninstall --ignore-dependencies openssl

Download https://raw.githubusercontent.com/Homebrew/homebrew-core/30fd2b68feb458656c2da2b91e577960b11c42f4/Formula/openssl.rb

brew install ./openssl.rb

@jzohrab
Copy link

jzohrab commented Nov 7, 2020

Thanks @jokumer, your solution works for Catalina 10.15.7:

brew uninstall --ignore-dependencies openssl
curl https://raw.githubusercontent.com/Homebrew/homebrew-core/30fd2b68feb458656c2da2b91e577960b11c42f4/Formula/openssl.rb > openssl.rb
brew install ./openssl.rb

@hasibaasma
Copy link

Thanks @jokumer, your solution works for Catalina 10.15.7:

brew uninstall --ignore-dependencies openssl
curl https://raw.githubusercontent.com/Homebrew/homebrew-core/30fd2b68feb458656c2da2b91e577960b11c42f4/Formula/openssl.rb > openssl.rb
brew install ./openssl.rb

This worked for me! Thanks

@jokumer
Copy link

jokumer commented Nov 30, 2020

I forgot that curl thing. Thx for contributing by comment

@will
Copy link

will commented Dec 29, 2020

working homebrew openssl postgres configure (just stuffing keywords for future searchers)

./configure prefix=/tmp/pg --with-openssl --with-libs=/usr/local/opt/openssl/lib --with-includes=/usr/local/opt/openssl/include

@lelodois
Copy link

this command solve my problem on github CI job:
cp /usr/local/opt/openssl@1.1/lib/pkgconfig/*.pc /usr/local/lib/pkgconfig/

Me tooo thanks :)

@anantonton
Copy link

@vcjuliocesar Did you try downgrading your openSSL as I mentioned in the comment before:

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

There are 2 uninstall commands to make sure any OpenSSL v1.1 is removed, and any dead v1.0 is removed, before installing v1.0.

This is working for me!

ANDDDDD... after accidentally upgraded openssl (and brew), this is no longer working for me. somehow.

But I find this working (no need to do the last step - brew switch... )

aisingapore/TagUI#635 (comment)

@jeromeof
Copy link

Great work - but when I try the app (after giving it permission etc) - I get the following error popup:

Unable to load OpenSSL library files: libssl.1.1.dylib and libcrypto.1.1.dylib

@bio-informatician
Copy link

If you are using a conda env, simply use

conda install -c bioconda samtools openssl=1.0

@arkakkar
Copy link

arkakkar commented Apr 8, 2021

thanks

@CrowleyRajapakse
Copy link

For compilers to find openssl@1.1 you may need to set:
  export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
  export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"

when you perform this export commands in the terminal above issue got resolved for me.

@elahmo
Copy link

elahmo commented May 30, 2021

is there a way to make this work on M1 Macs with BigSur?

@drone1
Copy link

drone1 commented Jun 8, 2021

Yes please :(

is there a way to make this work on M1 Macs with BigSur?

@corismall
Copy link

me too! Although I'm using an Intel core desktop with BigSur. I'm hesitant to downgrade.

@ever-dev
Copy link

ever-dev commented Jul 12, 2021

In M1 chip computers, the installations are placed in /opt/homebrew/opt instead of /usr/local/opt.
So we should use the following:

export LDFLAGS="-L/opt/homebrew/opt/curl/lib -L/opt/homebrew/opt/openssl/lib"
export CPPFLAGS="-I/opt/homebrew/opt/curl/include -I/user/local/opt/openssl/include"

@klaus4
Copy link

klaus4 commented Dec 19, 2021

<CrowleyRajapakse commented on 22 Apr>
For compilers to find openssl@1.1 you may need to set:
export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"
👍

@DWmelon
Copy link

DWmelon commented Aug 10, 2022

thanks, it work for me

@elfgoh
Copy link

elfgoh commented Aug 29, 2022

this command solve my problem on github CI job: cp /usr/local/opt/openssl@1.1/lib/pkgconfig/*.pc /usr/local/lib/pkgconfig/

On M1 seems like I can make to with $ ln -s /opt/homebrew/opt/openssl\@1.1/lib/pkgconfig/libcrypto.pc /usr/local/lib/pkgconfig/libcrypto.pc

Copy link

ghost commented Oct 24, 2022

@elfgoh thanks, this worked for me!

@EhsanZ
Copy link

EhsanZ commented Nov 5, 2023

In M1 chip computers, the installations are placed in /opt/homebrew/opt instead of /usr/local/opt. So we should use the following:

export LDFLAGS="-L/opt/homebrew/opt/curl/lib -L/opt/homebrew/opt/openssl/lib"
export CPPFLAGS="-I/opt/homebrew/opt/curl/include -I/user/local/opt/openssl/include"

Thank you very much 🙏

@BrianODell
Copy link

for what it's worth, I got through a compile (v2.48) with:

./configure LDFLAGS=-L/opt/homebrew/lib/ CFLAGS="-I/opt/homebrew/include"

on my M1 mac. Zero symlinks or copying of files!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment