如何卸载Xcode 5命令行工具?

15

我在星期五升级到了Xcode 5 Command Line Tools。有些东西出了问题,我想回到上一个版本的Xcode 4.x。我该如何卸载Xcode 5 Command Line Tools?在发行说明中没有看到任何信息。


1
我最终恢复了时间机器的备份。我的电脑出现了问题(RVM、xcode CLI、bundler),恢复后一切都好了多了。我一定是把什么东西搞砸了。尽管如此,我仍然想知道这个问题的答案,以防将来再次出现。 - WattsInABox
抱歉,我无法确切理解您的需求。您是想卸载 Xcode 5 并安装先前版本吗?还是只想卸载命令行工具,同时保留 Xcode 5,并降级到旧版的命令行工具? - veducm
https://dev59.com/p2Uq5IYBdhLWcg3wJNBA - Dmitriy.Net
@PICyourBrain 有没有任何答案对你有帮助?你找到其他解决方案了吗? - veducm
3个回答

8

根据您是否在Mavericks中运行Xcode 5,您需要执行两个不同的操作来卸载命令行工具。

  • In Mavericks, Xcode includes its own copy of the Command line tools (i.e. they are bundled as part of Xcode.app). Therefore, uninstalling the Xcode (check instructions below) will remove the Command line tools too.

  • For older Mac OSX versions running Xcode 5 or older versions (Xcode 4.x), you can find previous SO answers which explain how to uninstall Xcode's command line tool. You can use this script (Read more about it in this post):

    # 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,请参考这个SO答案所述:

  1. 卸载Xcode 5:转到/Applications并删除Xcode应用程序。
  2. 重新启动Mac。
  3. 然后,您可以从此处下载所需的Xcode版本,并从头开始安装它。

谢谢您的回答,但是我理解那个脚本不适用于XCode 5。它是针对4.3 CLI的。 - WattsInABox
1
经过更多的研究,我发现在 Xcode 5.0.x 和 Mavericks 中,苹果已经回到了将 Xcode 命令行工具捆绑到 Xcode.app 中(+info: http://derflounder.wordpress.com/2013/11/15/xcode-command-line-tools-included-with-xcode-5-0-x-on-mavericks/)。因此,除非您手动安装了命令行工具,否则卸载应用程序应该也会删除命令行工具。 - veducm
@WattsInABox,我的最后一次研究对你有帮助吗?我想确认答案是否也适用于你的具体情况。 - veducm
听起来非常有帮助,所以我给了你一个+1。实际上我现在并不需要这个,因为我已经解决了问题,但这是一个好的提示。谢谢! - WattsInABox
@veducm 在我的 Mountain Line 上不是这种情况。仍然运行 gcc 显示 clang。 - Mohamed ElNakeep
显示剩余4条评论

7

当我尝试卸载命令行工具v6时,我偶然发现了这个问题。

我已经安装了完整的Xcode 6,但是将Xcode移到垃圾箱并没有卸载/删除CLT。例如,我仍然拥有/usr/bin/clang。解决方法是手动删除CLT,使用.bom内容(类似于@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替换为您拥有的版本。您可能有多个版本,如果是这样,请对所有版本应用相同的命令(例如,我既安装了Mavericks又安装了Yosemite,因此我同时拥有DevSDK_OSX109DevSDK_OSX1010)。
注意:这将删除.bom中列出的文件。如果您不确定,可以通过执行lsbom -fls /var/db/receipts/com.apple.pkg.CLTools_Executables.bom等来查看它们的内容。
注意2:由于lsbom报告的路径是相对路径,因此需要cd /。您也可以通过简单地执行rm -rf /Library/Developer/CommandLineTools来删除CLT。

2

rm命令用于删除文件或目录。

从以下命令中删除CLT。

sudo rm -rf /Library/Developer/CommandLineTools

从终端中执行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接