【问题标题】:Mac OSX Mavericks Upgrade Clears /usr/local/binMac OSX Mavericks 升级清除 /usr/local/bin
【发布时间】:2014-04-28 03:27:38
【问题描述】:

我一直推迟升级到小牛队,因为担心它会打破想法,看来我的担心成真了。我有一个 Homebrew 安装,其中包含许多链接到 /usr/local/bin 的编译工具和一些指向其他二进制文件的自定义链接,例如 Sublime Text 的快捷方式。升级到 Mavericks 后,该文件夹中的几乎所有内容都被清除,因此所有命令都不起作用。 brew 脚本和一些乳胶工具仍然存在,但似乎就是这样。

这是升级时的预期行为吗?是否有任何快速解决方法?我可以从备份中复制文件夹内容吗?是在 Homebrew 中手动取消链接和重新链接所有内容的唯一方法(这不能解决我丢失的不是通过 Homebrew 编译的东西)吗?

我刚刚注意到 /usr/local/lib 似乎遭受了类似的命运,如果这对任何答案都很重要的话。我担心还有什么可能会受到影响。

【问题讨论】:

  • 这是题外话。 Stack Overflow 是关于编程的。
  • 是否有更好的堆栈交换社区可以将其移至?我找不到任何似乎更合适的东西。
  • 是的,它在接近投票说明的文本中。 Super User.
  • 显然我没有权限查看我自己的问题的接近投票 - 看起来有点荒谬但谢谢。
  • 也许这属于 serverfault.com?我在同一条船上。推迟升级,每个人都告诉我一切正常,现在 brew 完全坏了。也许是一个 brew re-install 命令?

标签: macos path osx-mavericks homebrew symlink


【解决方案1】:

我已经从Apple Stackexchange question 逐字复制并粘贴了我的答案,因为相关问题的链接隐藏在 cmets 中。

首先,重新链接所有已安装的公式:

brew list -1 | while read line; do brew unlink $line; brew link --force $line; done

然后运行brew doctor,它应该会抱怨并给你两个列表:

  • 具有多个版本的未链接公式
  • 原始重新链接过程错误链接的仅限小桶的公式。

对于具有多个版本的每个公式,运行以下命令,将“python”替换为公式名称:

brew info python  

这将向您显示所有已安装的版本以及其他信息。选择您要链接的版本(对我来说是 2.7.6),然后使用brew switch

brew switch python 2.7.6

您还需要在已链接的仅桶式公式列表(如果有)上运行 brew unlink

【讨论】:

  • 我不确定从长远来看它的效果如何,但我发现尝试“brew upgrade ab c”而不是弄清楚我想要什么版本更容易20 种不同的包
  • 只有在你的包过期时才有效。如果您之前在升级操作系统之前升级了一个包,那么第一个重新链接步骤将不适用于这些包,并且 brew upgrade 会告诉您该包是最新的。
  • 你说得对,我忘了提。对我来说,我几乎所有的包裹都处于那种状态。
  • 啊,是的,我认为brew upgrade 将修复您的大部分包,而无需执行第一步。
  • 这对我有用。 brew doctor 甚至没有抱怨多个版本。
猜你喜欢
  • 2014-08-05
  • 2013-04-22
  • 1970-01-01
  • 1970-01-01
  • 2021-03-25
  • 1970-01-01
  • 1970-01-01
  • 2014-08-05
  • 1970-01-01
相关资源
最近更新 更多