过度热心的“mv”重命名了我的/usr/lib文件夹

过度热心的“mv”重命名了我的/usr/lib文件夹

我遇到了一个问题,我的 /usr/lib 中的 libiconv.2.dylib 文件已损坏,许多应用程序都失败了。我得到了一个朋友的 /usr/lib 文件夹的副本,并打算将它们替换掉。显然我没有考虑周全,因为当我发布sudo mv /usr/lib /usr/lib.old它时导致了一些问题。现在 Finder 无法打开,Terminal.app 一直显示“非法操作”,其他东西(如存档实用程序)不起作用。我很确定如果我重新启动我的机器,它根本无法启动。

我怎样才能将其重命名,或者将我朋友的副本重命名为 /usr/lib(当前为 /usr/lib.new)???

答案1

感谢您的建议。我今天早上很慌张,翻遍了每个盒子,直到找到 OS X DVD。我能够直接从 DVD 启动,然后使用 DVD 的终端实例将 usr/lib/ 文件夹重命名。我还重新安装了 OS X 和 Xcode 开发人员工具以防万一。它现在启动正常,也不再出现有关 libiconv 的错误。

答案2

您的程序停止运行,因为它们可能链接到了无法再找到的库(硬依赖项)。这导致程序无法运行。

如果您能够启动终端,您应该能够手动指定LD_LIBRARY_PATH变量内的旧库的路径,以便您可以启动其他程序。

$ export LD_LIBRARY_PATH=/usr/lib.old

然后将您的图书馆移回原来的位置unset LD_LIBRARY_PATH

$ unset LD_LIBRARY_PATH

测试一切是否如以前一样正常运行。

/usr/lib/如果单个库出现问题,就不要再移动所有库。

答案3

  • OSX 有一个安全模式这可能会对你有帮助。
  • 重新启动机器也可能有帮助。
  • 如果您在运行命令时遇到问题,请尝试输入您正在使用的命令的完整路径。--(在本例中,完整路径是 /usr/lib.old/...)

答案4

你已经尝试过 chown 和 chmod 了吗?
我会尝试启动到单用户模式然后尝试:

chown -R root:wheel /usr/lib.old/

chmod -R 755 /usr/lib.old/

cp -R /usr/lib.old /usr/lib/

相关内容