我在星期五升级到 xcode 5 命令行工具。有些东西不能正常工作,我想回到上一个 4.x 版本的 ox xcode。如何卸载 xcode 5 命令行工具?我在发行说明中看不到任何内容。
3 回答
根据您是否在 Mavericks 中运行 Xcode 5,您需要执行两种不同的操作来卸载命令行工具。
在Mavericks中,Xcode 包含它自己的命令行工具副本(即它们被捆绑为 Xcode.app 的一部分)。因此,卸载 Xcode(查看下面的说明)也会删除命令行工具。
对于运行 Xcode 5 或更早版本 (Xcode 4.x) 的旧 Mac OSX 版本,您可以找到以前的SO 答案,这些答案解释了如何卸载 Xcode 的命令行工具。你可以使用这个脚本(在这篇文章中阅读更多关于它的信息):
# remove_CLI_tools.sh # written by cocoanetics:http://www.cocoanetics.com/2012/07/you-dont-need-the-xcode-command-line-tools/ # modified by yoneken #!/bin/sh RECEIPT_FILE1=/var/db/receipts/com.apple.pkg.DevSDK.bom RECEIPT_PLIST1=/var/db/receipts/com.apple.pkg.DevSDK.plist RECEIPT_FILE2=/var/db/receipts/com.apple.pkg.clang.bom RECEIPT_PLIST2=/var/db/receipts/com.apple.pkg.clang.plist RECEIPT_FILE3=/var/db/receipts/com.apple.pkg.llvm-gcc4.2.bom RECEIPT_PLIST3=/var/db/receipts/com.apple.pkg.llvm-gcc4.2.plist RECEIPT_FILE4=/var/db/receipts/com.apple.pkg.DeveloperToolsCLI.bom RECEIPT_PLIST4=/var/db/receipts/com.apple.pkg.DeveloperToolsCLI.plist if [ ! -f "$RECEIPT_FILE4" ] then echo "Command Line Tools not installed." exit 1 fi echo "Command Line Tools installed, removing ..." # Need to be at root cd / # Remove files and dirs mentioned in the "Bill of Materials" (BOM) lsbom -fls $RECEIPT_FILE1 $RECEIPT_FILE2 $RECEIPT_FILE3 $RECEIPT_FILE4 | sudo xargs -I{} rm -r "{}" # remove the receipt sudo rm $RECEIPT_FILE1 $RECEIPT_FILE2 $RECEIPT_FILE3 $RECEIPT_FILE4 # remove the plist sudo rm $RECEIPT_PLIST1 $RECEIPT_PLIST2 $RECEIPT_PLIST3 $RECEIPT_PLIST4 echo "Done! Please restart XCode to have Command Line Tools appear as uninstalled."
您可以通过打开终端并运行此命令轻松运行此命令(它将下载脚本并自动执行):
curl "https://gist.github.com/yoneken/3284561/raw/db665bb64f93e38ce138b5ca620b9edd18dc31e4/remove_CLI_tools.sh" | sh
如果一切正常,您可以打开 Xcode 并看到命令行工具似乎已安装。
然后,根据您的需要,您可以将 Xcode 降级到较低版本并重新安装该版本的命令行工具,例如。
要降级 Xcode,如this SO answer中所述:
- 卸载 Xcode 5:前往
/Applications
并删除 Xcode 应用程序。 - 重新启动 Mac。
- 然后您可以从这里下载所需的 Xcode 版本并从头开始安装。
我在尝试卸载命令行工具 v6 时偶然发现了这一点。
我安装了完整的 Xcode 6,但将 Xcode 移动到垃圾箱并没有卸载/删除 CLT。例如,我仍然有/usr/bin/clang
。解决方案是使用 .bom 内容手动删除 CLT(类似于@veducm 的答案):
cd /
lsbom -fls /var/db/receipts/com.apple.pkg.CLTools_Executables.bom | sudo xargs -I{} rm -rf "{}"
lsbom -fls /var/db/receipts/com.apple.pkg.DevSDK_OSX109.bom | sudo xargs -I{} rm -rf "{}"
sudo rm /var/db/receipts/com.apple.pkg.{CLTools_Executables,DevSDK_OSX109}.{bom,plist}
替换DevSDK_OSX109
为您拥有的版本。你可能有多个,在这种情况下,对它们都应用相同的命令(例如,我有两个DevSDK_OSX109
,DevSDK_OSX1010
因为我也为 Mavericks 和 Yosemite 安装了 CLT)。
注意:这将删除 .bom 中列出的文件。lsbom -fls /var/db/receipts/com.apple.pkg.CLTools_Executables.bom
如果您不确定,您可以先查看它们的内容。
注意2:您需要cd /
lsbom 报告的路径是相对的。您也可以通过简单地删除 CLT rm -rf /Library/Developer/CommandLineTools
。
rm 命令删除(删除)文件或目录。
从以下命令中删除 CLT
sudo rm -rf /Library/Developer/CommandLineTools
从终端。