在Mac OS X中使用自制啤酒酿造医生的警告问题


0

我刚刚安装了自制软件,我收到了这个警告:

$ brew医生

请注意,如果您提出问题,这些警告仅用于帮助Homebrew维护人员进行调试。如果您使用Homebrew的一切工作正常:请不要担心,只是忽略它们。谢谢!

警告:在/ usr / local / lib中找到了未编号的dylib。如果您没有故意将它们放在那里,那么在构建Homebrew公式时可能会出现问题,并且可能需要删除它们。

意外的dylib:

/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

欢迎。那么什么是自制啤酒医生?你发布了一个似乎不言自明的经历。我没有看到任何类似问题的内容。这在某种程度上是个问题吗?您需要帮助的具体内容吗?
fixer1234 2014年

Answers:


0

警告本身清楚地说明了这个问题:

请注意,如果您提出问题,这些警告仅用于帮助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如果需要重新安装它们,则可以在已命名的文件中对已删除的动态库进行干净备份。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.