自制医生警告要求删除库


4

我收到以下brew doctor警告列表,并想知道删除列出的库和.pc文件是否安全。(我不知道它们的用途是什么!)

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/libtcl8.6.dylib
/usr/local/lib/libtk8.6.dylib

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

Unexpected .pc files:
/usr/local/lib/pkgconfig/tcl.pc
/usr/local/lib/pkgconfig/tk.pc

Warning: Unbrewed static libraries 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 static libraries:
/usr/local/lib/libtclstub8.6.a
/usr/local/lib/libtkstub8.6.a

我们可以回答此问题的唯一方法是,如果我们知道安装它们的是什么,然后使用它们的是什么。
2014年

显然,这些库来自安装R.appapple.stackexchange.com/questions/122558/…–
Olivier de

然后这是一个dup,正如我的评论中所说的那样,很可能会发生故障,并且没有任何故障,但是您将可以调试它-这就是为什么那些知道如何调试此方法的人不使用放置东西的软件包管理器您还在那里建立-他们知道如何调试以前做过的事情
2014年

您的评论对我没有多大用处,但是还是感谢您的努力!
Olivier de Broqueville 2014年

答案是不安全的,因为某些东西会破裂,但是直到您在某些报告中看到错误的答案之前,您可能不会被告知发生了什么问题,尽管更有可能发生崩溃
2014年

Answers:


8

我收到了相同的警告,并通过以下方法进行了处理:

因此,首先备份这些文件:

mv /usr/local/lib/libtcl8.6.dylib /usr/local/lib/libtcl8.6.dylib.bak ...

然后使用Homebrew安装tcl / tk:

brew tap homebrew/dupes brew install tcl-tk --with-tk

然后链接文件,以便R可以找到Homebrew安装的tcl / tk:

ln -s /usr/local/Cellar/tcl-tk/8.6.1/lib/libtcl8.6.dylib /usr/local/lib/libtcl8.6.dylib ln -s /usr/local/Cellar/tcl-tk/8.6.1/lib/libtk8.6.dylib /usr/local/lib/libtk8.6.dylib

请仔细检查链接位置是tcl-tk的安装位置。

现在Homebrew和R都高兴了。

可以在我的博客上找到更多详细信息。希望这可以帮助。


0

我得到了同样的警告从brew doctor。为了摆脱我通过cran软件包安装的R,我基本上遵循了与Olivier相同的步骤,从而按照R安装和管理手册中的描述删除了应用程序和框架:

rm -rf /Library/Frameworks/R.framework /Applications/R.app /usr/bin/R /usr/bin/Rscript

然后,通过确保未删除任何目录(特别是完整usr分支,该分支在-的输出中列出)删除了列出的属于该软件包的文件,从而引起pkgutil了内核恐慌):

for F in `pkgutil --files org.r-project.x86_64.tcltk.x11 | sed 's/^/\//'`
  do if [[ -f $F ]]
    then rm $F
  fi
done

这给我留下了很少的Tcl和Tk相关目录/usr/local/lib,我手动将它们除去,检查中的输出pkgutil。或者,但是冒着删除由于任何原因而留空的无关目录的风险,这可以通过以下方式完成:

find /usr/local -type d -empty -delete

brew install r没有问题地重新安装了R。


另外,如果有人将--only-files标志添加到Oliviers的答案就可以正常工作,pkgutil以确保没有删除任何目录。
单体2014年

-1

我打算从Mac上完全卸载R,然后使用Homebrew重新安装它。

注意:请勿执行以下步骤 请采取任何操作之前,请仔细阅读文章末尾。

我采取的步骤如下:

1)删除R app和框架:

rm -rf /Library/Frameworks/R.framework /Applications/R.app \
   /usr/bin/R /usr/bin/Rscript

2)删除R附带的软件包(我的理解是R安装了一些软件包)。在我的系统上,我确定了以下软件包:

$ pkgutil --pkgs | grep org.r-
org.r-project.R.Leopard.fw.pkg
org.r-project.R.Leopard.GUI.pkg
org.r-project.R.Leopard.GUI64.pkg
org.r-project.R.x86_64.fw.pkg
org.r-project.R.x86_64.GUI.pkg
org.r-project.x86_64.tcltk.x11

例如,要查看构成Tcl / Tk软件包的文件,可以键入:

pkgutil --files org.r-project.x86_64.tcltk.x11

我使用以下命令从该软件包中删除了所有文件和(子)文件夹:

pkgutil --files org.r-project.x86_64.tcltk.x11 | xargs sudo rm -rf

事实证明这是一个非常糟糕的主意,因为它导致了内核恐慌,而我最终不得不重新安装Mavericks!显然,根据Apple Store上的天才人士所说,上述软件包已预装了Mavericks,并且由于某些未知原因,从上述软件包中删除文件会删除一些必要的系统文件!

我得出的结论是,使用Homebrew会带来更多麻烦,而不是让我的生活更轻松!最初,我为Homebrew丢弃了MacPorts,因为Homebrew速度更快,而且MacPorts似乎在树上保留了很多“叶子”!而且,两者都需要定期维护。

最后,我都放弃了!


这个答案可能很危险。@Olivier,您能对其进行编辑以使其包含一个标头,该标头上明确标明诸如“ 不要遵循此建议”之类的内容!!!。原因是有人粗心或仓促地执行了步骤,然后才导致内核崩溃,因此我不得不重新安装Mavericks!我会对其进行编辑,但是我没有足够的代表。
Mike Williamson
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.