警告本身清楚地说明了这个问题:
请注意,如果您提出问题,这些警告仅用于帮助Homebrew维护人员进行调试。如果您使用Homebrew的一切工作正常:请不要担心,只是忽略它们。谢谢!
特别是这个; 重点是我的:
警告:在/ usr / local / lib中找到了未编号的dylib。如果您没有故意将它们放在那里,那么在构建Homebrew公式时可能会出现问题,并且可能需要删除它们。
关键是自制软件正在通过并指出潜在的问题,而不是当前的问题。风险在于,本地安装的动态库可以使用未经自制式配方检查的旧版本/新版本。因此,有一个边缘情况,他们可能会在将来导致您的问题。
查看那里列出的动态库,这些似乎是连接到Citrix Receiver ,如此Stack Overflow答案中所述。因此,如果您正在使用Citrix Receiver,则无法删除这些文件。但是,如果您不使用Citrix接收器,则删除它们很可能是安全的。
也就是说,这里有两种可能的解决方案:白名单列表并完全删除它们。
白名单列出动态库文件。
如果您使用的是Citrix Receiver且无法删除文件,则将其列入白名单很可能是最佳折衷方案。假设您的自制软件安装在标准位置,您可以通过终端打开doctor.rb
连接到自制软件的Ruby文件nano
:
/usr/local/Library/Homebrew/cmd/doctor.rb
您可以在此处查看GitHub存储库中的相同内容。第120行是white_list
定义:
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
]
编辑它以添加与Citrix Receiver相关的动态库,如下所示:
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
]
而且你应该对那些被列入白名单的项目很好,因此被忽略,因此没有更多的警告。但请记住:下次安装自制软件或甚至升级它时,这些白名单值可能会被覆盖。
删除动态库文件。
删除动态库文件是下一个选项。但是,如果您不确定删除,那么您可以采取安全的方法,只需将这些特定文件移动到某个安全的地方,就像命名的目录一样critix_dylibs
。首先制作如下的实际目录:
mkdir ~/critix_dylibs
然后将它们移动到该目录中,如下所示:
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/
然后通过简单的移动就可以有效地“中和”它们。运行自制程序应该显示一个干净的执行没有警告。
你甚至可以采取归档一步通过创建.tar
和.gz
存档这样。首先创建.tar
存档:
tar -cf ~/critix_dylibs.tar ~/critix_dylibs
接下来Gzip就像这样:
gzip ~/critix_dylibs.tar
然后像这样折腾目录:
rm -rf ~/critix_dylibs
这样,critix_dylibs.tar.gz
如果需要重新安装它们,则可以在已命名的文件中对已删除的动态库进行干净备份。