TagUI: dyld: Library not loaded error on macOS (OpenSSL missing)
Welcome to TagUI GitHub page š¤! TagUI is a free RPA tool by AI Singapore (to automate digital processes). Thereās a Python package built on TagUI called RPA for Python š with a similar issue and already has an automated fix.
This error is happening because macOS decided to drop OpenSSL and switched to LibreSSL. Furthermore, macOS Homebrew switched from OpenSSL v.1.0 to v1.1, breaking many other apps that are dependent on OpenSSL v1.0. The solution below may or may not work for other apps, be sure to check with their respective maintainers to confirm.
===== PROBLEM =====
Iāve come across a feedback from a macOS user that below error happens when running TagUI.
dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
===== RECOMMENDED SOLUTION =====
Hi Guys, for TagUI @Stwissel may have found the permanent solution. Note that this solution may not help for other projects. Download directly from following link. After unzipping, put contents of unzipped folder into tagui/src/phantomjs folder. https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-macosx.zip
Though above zip is PhantomJS v2.1.1 (same as TagUI packaged PJS), total file size for this zip after extraction is different. It might be Ariya, creator of PhantomJS, put in a fix already just to solve this headache with macOS/OpenSSL/Homebrew.
===== DEPRECATED SOLUTION =====
There is a new dependency in newer versions of macOS. To fix the error do the following. It installs Homebrew (a package manager for macOS) and installs OpenSSL for https connections. There are 2 uninstall commands below to first remove OpenSSL v1.1, then remove any dead OpenSSL v1.0, before installing a custom OpenSSL v1.0 formula which works without having to build with Xcode.
If you donāt have Homebrew or donāt know what is it
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb
ā
Or if you already have Homebrew installed
brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb
ā
One last thingā¦
If you encounter problems using brew
, try the solution from @mrtoadsc near bottom of this page.
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Reactions: 623
- Comments: 118 (32 by maintainers)
Commits related to this issue
- #86 - update setup info for macOS / Ubuntu issues — committed to aisingapore/TagUI by kensoh 6 years ago
This worked for me:
Update April 2021
brew switch
has been from removed homebrew, https://github.com/kelaberetiv/TagUI/issues/86#issuecomment-720145575 worked instead.Old answer (February 2020)
I resolved the issue by switching my active OpenSSL version after installing the custom tap provided above
Source: https://stackoverflow.com/questions/59006602/dyld-library-not-loaded-usr-local-opt-openssl-lib-libssl-1-0-0-dylib
Hereās what worked for me
Hope this helps
Update: Keep in mind, that I had to use
--ignore-dependencies
flag, because I have other packages installed that depend on OpenSSL.Thank you @KungFuLucky7. You are a gentleman and a scholar! Worked for me on Catalina and Homebrew 2.5.8
There is a new dependency possibly in newer versions of macOS. To fix the error do the following. It installs Homebrew (a package manager for macOS) and installs OpenSSL for https connections.
If you do not have Homebrew or donāt know what is Homebrew
ā Or if you already have Homebrew installed
ā If you encounter problems using
brew
, try the solution from @mrtoadsc near bottom of this page.Switch to an older openssl package, via SO
brew switch openssl 1.0.2s
Just do a
brew switch openssl 1.0.2t
, in my case the only openssl 1.0.x version previously installed with brewI stumbled across this thread while trying to resolve my own dyld: Library not loaded libssl issue. In more recent versions of MacOS, they introduced a feature called System Integrity Protection which prevents packages from writing to protected directories like /bin or /usr/lib. Even commands like
brew link openssl --force
will not work.You must disable SIP in order to copy/link the open ssl libraries to the correct destination, You can do this by going into Recovery Mode (reboot, Cmd-R at the Apple logo), open a Terminal and execute the command
csrutil disable
, reboot and then you can copy the files into /usr/lib. This is what worked for me. Perhaps you can copy the libssl, libcrypto files to /usr/loca/lib - which doesnāt require disabling SIP - but I didnāt try that.Good luck!
1- Download the file:
wget https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb
2 - Run brew with the file downloaded:
brew install openssl.rb
another datapoint the same user fixes the issue with just the following without doing the linking step (he already has Homebrew) so the first line
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
is not needed.another datapoint where a macos user encounters the same issue. it could be the 10.13 release change in behavior around OpenSSL.
For what itās worth, i had to use
brew intall openssl
to make it work.I followed the instructions outlined here and disabled System Integrity Protection. When I try to run these steps:
brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb
, I still get the following error:Any suggestions?
@JivanRoquet thanks for pointing that out! Running
brew update $ brew upgrade
got me in this situation in the first place. While looking for a fix I came across this thread. What worked for me were two of the lines from @sinaahmadiThanks! š
Just upgraded to
macOS Catalina
, I run into this same problem. I preferred not to modify anything regarding my System Integrity Protection, so the following could fix my problem:Thanks mate. I have ceased my employment with my previous company recently. I am thinking about providing consultancy jobs related to AI. I intend to return to work in 6 to 12 months. I have a request for a robot office reception. Case illustration: a tablet at the office counter. It sense motion near it. Wakes up and say āHi, are you here to visit an employee or deliver?ā It listens for a name and search database & call employee to inform visitor. In the meantime, it will communicate with visitor to register name, contact & purpose of visit. It listens for ādeliverā too. If yes, it will trigger a drop box open, and request the deliver person to drop the delivery. As the delivery man drop the item, a few video will be captured as proof of delivery. And the system will communicate with the delivery man for confirmation including generate a signed POD for print.
I am thinking it is somewhat related to your system but require chatbot integration, and ability to integrate with sensors.
Please share any guidance if available.,
On Tue, Apr 17, 2018 at 10:51 PM, Ken Soh notifications@github.com wrote:
@razvanphp / @snusmu - If it is mac, You can find the version of openssl from here -
ls /usr/local/Cellar/openssl
.Based on version you find, you can switch your openssl version :
This will resolve the wget issue.
After half a day of googling and attempting to install/reinstall openssl, this finally worked for me. Thanks
@kensoh this command
can be a massive disrupter for your entire system with no way back, and shouldnāt be taken (nor recommended) lightheartedly. Depending on your system, it will get your computer busy for hours, and will upgrade every single package from your installation, which is something you probably (most certainly) do NOT want.
Recommending this with no warnings just to fix an openssl package is quite irresponsible, and is akin to burning an entire forest for someone who just wants to warm his dinner. I canāt believe this post was so overwhelmingly upvoted.
Thank you ns11! That fixed it for me!! š
found this link since my wget was not working, for wget reinstalling it solved the issue on 10.15.4
you could try
brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb
im getting this error Error: Calling Non-checksummed download of openssl formula file from an arbitrary URL is disabled! Use ābrew extractā or ābrew createā and ābrew tap-newā to create a formula file in a tap on GitHub instead. If reporting this issue please do so at (not Homebrew/brew or Homebrew/core): https://github.com/tebelorg/Tump/issues/new
This works for me!
brew switch openssl 1.0.2r worked for me as 1.0.2t was showing: openssl does not have a version ā1.0.2tā in the Cellar.
OMG. I love you.
if you install the current version and after that copy the old version to the folder actually works brew install // install 1.1 version download libcrypto.1.0.0.dylib and libssl.1.0.0.dylib so move them to /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib and /usr/local/opt/openssl/lib/libssl.1.0.0.dylib I know that is not an elegant way but if it works is better than nothing ah I search but for example this repository have that mentioned files https://github.com/zoom/zoom-sdk-macos/tree/master/ZoomSDK
Iām not sure what is the above command FJH that triggers the error message. Do you mean you have problems running MySQL? If yes, you should raise the issue on MySQL issues or community forum page.
If you mean an existing TagUI script now cannot work after installing MySQL, you can try the following to see if it works, by removing and installing OpenSSL again.
Works for me!
Thanks @heatherbooker @kolja-lucht and @JivanRoquet who originally pointed this out.
I agree that something should be done. This thread has 4000 unique visitors EVERY WEEK.
Though the official solution at the top is updated to remove this risky command, there are bits and pieces scattered in the whole thread which still has the
brew upadate && brew upgrade
command.In order to avoid collateral damage by any visitors, I have decided and removed all references of this command, including posts made by users. Though this modification will somehow warp the conversation thread of how the solution developed, and may break the flow of what other users have shared.
It is still a smaller cost than if anyone accidentally run that supposed best practice command and got into issues with the dev environment. I found that command somewhere as the recommended solution but it was too long ago and probably the source has been updated.
Where the reference canāt be removed legibly, I over-wrote with below code block.
After this procedure, this message appears
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib Referenced from: /usr/local/opt/php@5.6/sbin/php-fpm Reason: image not found
MacOs Catalina PHP 5.6
I have a similar error after the same procedure quoted by @marcelloinfoweb , but with this error message ( Macos Catalina ) :
Library not loaded: /usr/local/opt/openssl@1.1/lib/libssl.1.1.dylib
Adding on, below flag will ensure uninstallation of openssl, but Iām wonāt and canāt put this into the recommended solution at top of the page, at least for TagUI tool users.
This is because the flag will force uninstallation even though there are other apps on the computer that requires the openssl version that is being uninstalled. While that may fix the problem for one app, it almost certainly will break some other app(s) on the Mac laptop.
For eg, it could make TagUI or the tool you are fixing to work, while breaking other apps that are dependent on a particular version of openssl. Will have to leave it to users to decide and make a call what is more important to be working.
For me i had to run
brew reinstall php
and iām back up and runningYou only need to update
wget
.is enough.
Thanks
FYI: In my case, the issue was stemming from a conflict betwen OSX (10.11) ssh installed version and a newly installed (via Brew) openssh client. {solution was simply to uninstall openssh:
brew uninstall openssh
}I had that problem too today on macOS 10.14.6 The solution was: donāt touch brew - you donāt want OpenSSL 1.0 on your system Head over to the phantomJS download page and download the last
release 2.1.1
Unzip the the download and locate thephantomjs
file (in bin) replace the file in[taguihome]/src/phantomjs/bin
with it. This will work with OpenSSL 1.1.1 (whatās current in brew)As @DuckMasterAl said, the correct command is:
brew reinstall openssl@1.1
Really depressing - the disasterous brew upgrade command has wrecked everything! I canāt even remember what problem I was trying to solve when I read that āsolutionāā¦ now in a nightmare of variations on the following, no matter which advice I follow from above:
I use MAMP Pro on Mac Catalina - not sure if that and itās diferent installation of php are hiding the problemā¦ I also suspect that in my eagerness to get it fixed, running brew uninstall āignore-dependencies openssl was probably stupid, as now a load of other programs have lost their dependenciesā¦ grrrrr.
Any other suggestions appreciated - I donāt want to disable SIP. Must be a better solutionā¦!
After getting tired of being switching among versions, I have decided to look for one solution to my situation. I wanted to reinstall mongodb in order to see if mongo was truly dependent of openssl 1.0.2 or it was just my version of mongodb. I was surprised when I found that Homebrew has delete mongodb from its core formulas since mongo was migrated to a non open-source license. So, following this thread in stackOverflow I was able to install mongodb again using tap https://stackoverflow.com/questions/57856809/installing-mongodb-with-homebrew So I run this command in my terminal
and voila, I can used mongoās terminal commands with openssl 1.1
Solution give in this link is totally correct. But if still getting the same error, try to remove existing openssl and install it again.
The perfect solution in macOS Catalina with PHP 7.2 https://github.com/kelaberetiv/TagUI/issues/86#issue-303370944
Iāve been having this same issue with wget, tried reinstalling openssl to no avail.
^this finally made it work for me š
@frakman1 the goal for this particular project is to make OpenSSL v1.0 available on macOS. Using uninstall twice is a more foolproof 1-liner to make sure any v1.1 is removed, followed by any dead and not working v1.0 is removed (which can happen and block the installation), before doing the installation from custom formula. More details in this thread - https://github.com/kelaberetiv/TagUI/issues/635#issuecomment-560185670
I uninstalled the 1.1 version and installed the
v1.0.0
version fixed this issue, seems like my django need a 1.0.0 version but I have 1.1 previously, thank you!It looks like the app you are using is still having a dependency for OpenSSL v1.0. You can try -
ā Note that above solution and this thread is to solve a problem faced by users using TagUI tool. Though it may solve similar problems faced by users of other apps, it may not. Do check the docs, issues or mailing list of the app you are using to see if they have found and recommended an official solution for their apps around this OpenSSL issue due to change in macOS (to switch to LibreSSL) and then later on a change in Homebrew (to move from OpenSSL v1.0 to v1.1).
Thatās great! You are absolutely right about dependencies. I have a dozen of other packages relying on openssl. So, if no better solution is found, the one Iāve posted should be considered only after Kenās and Markās failed to resolve issue.
Updated solution to work with newer version of Homebrew which drops OpenSSL v1.0 for v1.1 More details on this updated solution to restore OpenSSL v1.0 at this issue https://github.com/kelaberetiv/TagUI/issues/635
===== S O L U T I O N =====
There is a new dependency in newer versions of macOS. To fix the error do the following. It installs Homebrew (a package manager for macOS) and installs OpenSSL for https connections.
If you do not have Homebrew or donāt know what is Homebrew
ā Or if you already have Homebrew installed
ā ===== N O T E =====
If you encounter problems using
brew
, try the solution from @mrtoadsc here - https://github.com/kelaberetiv/TagUI/issues/86#issuecomment-532462565Jamess-MacBook-Pro:src jameschan$ ./tagui samples/try1 chrome dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib Referenced from: /Users/jameschan/Downloads/tagui/src/phantomjs/bin/phantomjs Reason: image not found
i am reading the above can fix but can explain what is wrong?? Thanks
Hi Guys, for TagUI @Stwissel may have found the permanent solution. Note that this solution may not help for other projects. Download directly from below link. After unzipping, put contents of unzipped folder into tagui/src/phantomjs folder.
https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-macosx.zip
Though above zip is PhantomJS v2.1.1 (same as TagUI packaged PJS), total file size for this zip after extraction is different. It might be Ariya, creator of PhantomJS, put in a fix already just to solve this headache with macOS/OpenSSL/Homebrew.
@Maks1708 -> Head over to the phantomJS download page and download the last release 2.1.1 Unzip the the download and locate the phantomjs file (in bin) replace the file in [taguihome]/src/phantomjs/bin with it. This will work with OpenSSL 1.1.1 (whatās current in brew)
The proper brew command should be
brew uninstall --ignore-dependencies openssl;
since openssl will probably be in some dependencies (at least it was for me)@kensoh Thanks for all your work debugging in this thread!
https://github.com/kelaberetiv/TagUI/issues/86#issuecomment-371766145 was the first thing I tried and it would be awesome to have JivanRoquetās disclaimer that one should be careful when running those lines added to that message, if you would consider that. š
Hi @JivanRoquet thanks for pointing out! I have the line
brew update && brew upgrade
as part of the solution when I originally research for the solution to the problem. Though this was way back and I canāt backtrace the source of having this command.The solution works for me and I believe works for significant number of people, thus the upvotes and positive reinforcement that this is still the best solution. From your feedback, I can understand why this line could be a big problem, and Iāve removed that line from the solution summary.
Hopefully the solution still works without that line!
It theoretically should, because the solution has changed along the way with Homebrew migration to OpenSSL v1.1, to require hosting a custom formula in order to solve the problem, without having to use XCode to compiled from source on user laptops.
Iām afraid I have not heard of any solution to have 2 different versions of OpenSSL running on the same Mac computer. I know that sucks, especially in situations where you want to use both software at the same time but canāt. Will look forward to hearing from other experts how that can be done.
Just running
worked for me; no need to uninstall/reinstall OpenSSL.
@kensoh
Why do you uninstall openssl twice?
It looks like you have some developer tools installed on your laptop, and that OpenSSL v1.1 is also presented, installed through Homebrew. If the reason for uninstalling v1.1 to have v1.0 in order to use TagUI, then yes you can try uninstalling to ignore the dependencies to get v1.0. However, if v1.0 has issues later on for some of those apps above, then youāll have to uninstall v1.0 to put back v1.1 for those apps to work.
Adding on, a permanent fix for this issue is being worked on now. First, PhantomJS has recently started active development, Iām checking with the maintainer on this to see if he can update to using v1.1 OpenSSL as the standard or better still, switch to LibreSSL which comes with macOS. Secondly, a POC on migrating TagUIās execution engine to Node.js is being explored to see if that makes sense for the project and its users.
Thanks Pavel for sharing! Hate that there is so much user friction around this. @siowyisheng is now working on a POC to evaluate the possibility of overhauling TagUI to be based on NodeJS, instead of the current PhantomJS, as the execution engine.
If that is viable, the future major release would not subject users to these frictions. Also, I noticed that increasingly it becomes more friction for user and developers for macOS. Number of changes this year with macOS that need users and developers to change the way things are done and do extra. Windows does not seem to have similar issues.
PS - adding on, Pavelās version to include
--ignore-dependencies
option is probably because there are other packages on his macOS that is dependent on OpenSSL. For the time being, I wonāt put that as the primary method and leave it to user to decide. Because trying to let TagUI run by doing this might break other apps of user that requires OpenSSL v1.1 instead of v1.0.Thanks @AnujAroshA for sharing your tip!
Thanks @ntoghrama for sharing your experience tackling this problem.
Adding on, I hate to say this (because macOS is my favourite OS), but it seems harder and harder to deploy open-source apps on macOS. First they remove OpenSSL last year, which introduced this issue. Recently they add strict security controls in the macOS Catalina update.
This create additional steps for users to use their apps. For eg, users may need to manually add PhantomJS (execution engine for TagUI) to the list of approved apps, and also manually allow Java (used by SikuliX visual automation engine) to control the mouse and read from the screen.
More details on the solutions at https://github.com/kelaberetiv/TagUI/issues/601 and https://github.com/kelaberetiv/TagUI/issues/598 (have also updated readme)
I donāt know how much more inconvenience is there going to be in future macOS releases š¢
Hi. Iām running Mac OS 10.12.6 (sierra).
After installing mysql connector cpp 8.0.17 this same issue happened:ENH-MBP:build enhering$ ./FJH dyld: Library not loaded: libssl.1.0.0.dylib Referenced from: /usr/local/mysql-connector-c+Ā±8.0.17/lib64/libmysqlcppconn.7.dylib Reason: image not found Abort trap: 6 ENH-MBP:build enhering$
I already had openssl installed by brew. And I was using MySQL connector cpp 1.x.x before this without problems.
The MySQL connector cpp 8.0.17 package was downloaded from mysql website. They provide binaries for many distributions.