wget gives error "dyld: Library not loaded: /opt/local/lib/libnettle.4.dylib"

When I try to use wget, I am getting this error message:

$: wget
dyld: Library not loaded: /opt/local/lib/libnettle.4.dylib
  Referenced from: /opt/local/bin/wget
  Reason: image not found
Trace/BPT trap: 5

I have reinstalled wget using homebrew (brew reinstall wget), I updated and upgraded my homebrew, however this hasn't helped.

In my /opt/local/lib/ folder I cannot find libnettle.4.dylib, however I do find /opt/local/lib/libnettle.6.dylib. I tried to solve the problem by simply symlinking from /opt/local/lib/libnettle.6.dylib to /opt/local/lib/libnettle.4.dylib. This didn't help either, but got me a new error message:

$ wget
dyld: Library not loaded: /opt/local/lib/libhogweed.2.dylib
  Referenced from: /opt/local/lib/libgnutls.28.dylib
  Reason: image not found
Trace/BPT trap: 5

When I run brew info wget, I get this output:

wget: stable 1.17.1 (bottled), HEAD
Internet file retriever
https://www.gnu.org/software/wget/
/usr/local/Cellar/wget/1.17.1 (9 files, 1.6M) *
  Built from source with: --with-debug
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/wget.rb
==> Dependencies
Build: xz ✔, pkg-config ✔
Recommended: openssl ✔
Optional: libressl ✔, pcre ✔, libmetalink ✔, gpgme ✔
==> Options
...

How can I fix this?


I think you have both MacPorts and Homebrew installed. MacPorts installs by default in /opt/local, whereas Homebrew installs in /usr/local. Since the command you are actually running is /opt/local/bin/wget, you probably have /opt/local/bin before /usr/local/bin in your PATH environment. Check it with:

$ echo $PATH

In such a case, any software installed with Homebrew is not used at all, if not called with its absolute path. So, try launching Homebrew's wget with its absolute path:

$ /usr/local/bin/wget

If it is working in this way, put /usr/local/bin as first folder in your PATH environment, by modifying ~/.profile or ~/.bash_profile file.


You could try updating the DYLD cache:

sudo update_dyld_shared_cache -root / -force

It is possible that the Dynamic Link Library cache hasn't updated to include the shared libraries which were installed when you installed wget.


On macports

sudo port install wget

would install the pcre2 dependency and the problem went away.