2

I just installed homebrew and am getting this Warning:

$ brew doctor

Please note that these warnings are just used to help the Homebrew maintainers with debugging if you file an issue. If everything you use Homebrew for is working fine: please don't worry and just ignore them. Thanks!

Warning: Unbrewed dylibs were found in /usr/local/lib. If you didn't put them there on purpose they could cause problems when building Homebrew formulae, and may need to be deleted.

Unexpected dylibs:

/usr/local/lib/libMonoPosixHelper.dylib

/usr/local/lib/libSFFileMonitor.32.dylib

/usr/local/lib/libSFIPC.32.dylib

/usr/local/lib/libSFIPC.I.dylib

/usr/local/lib/libSFsqlite3.7.4.dylib

/usr/local/lib/libSFSyncEngine.I.dylib
0

1 Answer 1

1

The warning itself states the issue clearly:

Please note that these warnings are just used to help the Homebrew maintainers with debugging if you file an issue. If everything you use Homebrew for is working fine: please don't worry and just ignore them. Thanks!

Specifically this; emphasis is mine:

Warning: Unbrewed dylibs were found in /usr/local/lib. If you didn't put them there on purpose they could cause problems when building Homebrew formulae, and may need to be deleted.

The key is that homebrew is just being through and point out potential issues and not current issues. The risk is that this locally installed dynamic libraries could older/newer versions that are not checked against homebrew recipes. As such there is an edge case where they might cause you issues in the future.

Looking at the dynamic libraries listed there, these seem to be connect to Citrix Receiver as explained in this Stack Overflow answer. So if you are actively using Citrix Receiver, then you can’t delete those files. But if you are not using Citrix receiver, it is mostly likely safe for you to delete them.

That said, here are two possible solutions: white-listing the files and deleting them completely.

White-listing the dynamic library files.

If you are using the Citrix Receiver and cannot delete the files, then white-listing them is most likely the best compromise. Assuming your installation of homebrew is in the standard location you can open up the doctor.rb Ruby file connected to homebrew like this in nano via the Terminal:

/usr/local/Library/Homebrew/cmd/doctor.rb

You can view the same contents in the GitHub repo here. And around line 120 is the white_list definition:

white_list = [
    "libfuse.2.dylib", # MacFuse
    "libfuse_ino64.2.dylib", # MacFuse
    "libmacfuse_i32.2.dylib", # OSXFuse MacFuse compatibility layer
    "libmacfuse_i64.2.dylib", # OSXFuse MacFuse compatibility layer
    "libosxfuse_i32.2.dylib", # OSXFuse
    "libosxfuse_i64.2.dylib", # OSXFuse
  ]

Edit that to add your Citrix Receiver related dynamic libraries like this:

white_list = [
    "libfuse.2.dylib", # MacFuse
    "libfuse_ino64.2.dylib", # MacFuse
    "libmacfuse_i32.2.dylib", # OSXFuse MacFuse compatibility layer
    "libmacfuse_i64.2.dylib", # OSXFuse MacFuse compatibility layer
    "libosxfuse_i32.2.dylib", # OSXFuse
    "libosxfuse_i64.2.dylib", # OSXFuse
    "libMonoPosixHelper.dylib", # Citrix Receiver
    "libSFFileMonitor.32.dylib", # Citrix Receiver
    "libSFIPC.32.dylib", # Citrix Receiver
    "libSFIPC.I.dylib", # Citrix Receiver
    "libSFsqlite3.7.4.dylib", # Citrix Receiver
    "libSFSyncEngine.I.dylib", # Citrix Receiver
  ]

And you should be good with those items being white-listed, thus ignored, thus no more warnings. But remember: The next time you install homebrew or even upgrade it, these white-listing values might be overwritten.

Deleting the dynamic library files.

Deleting the dynamic library files is the next option. But if you are unsure about deletion, then you can take the safe approach of simply moving those specific files someplace safe like a directory named critix_dylibs. First make the actual directory like this:

mkdir ~/critix_dylibs

Then move them into that directory like this:

sudo mv /usr/local/lib/libMonoPosixHelper.dylib ~/critix_dylibs/
sudo mv /usr/local/lib/libSFFileMonitor.32.dylib ~/critix_dylibs/
sudo mv /usr/local/lib/libSFIPC.32.dylib ~/critix_dylibs/
sudo mv /usr/local/lib/libSFIPC.I.dylib ~/critix_dylibs/
sudo mv /usr/local/lib/libSFsqlite3.7.4.dylib ~/critix_dylibs/
sudo mv /usr/local/lib/libSFSyncEngine.I.dylib ~/critix_dylibs/

They will then be effectively “neutralized” by simply being moved like that. And running homebrew should show a clean execution without warnings.

You can even take that archiving one step further by creating a .tar and .gz archive like this. First create the .tar archive:

tar -cf ~/critix_dylibs.tar ~/critix_dylibs

Next Gzip it like this:

gzip ~/critix_dylibs.tar

And then toss the directory like this:

rm -rf ~/critix_dylibs

That way you have a clean backup of the removed dynamic libraries in a file named critix_dylibs.tar.gz should you need to re-install them again.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .