苹果最近发布了命令行工具
请注意,我通过在Xcode中添加特定组件来安装这些工具。而且,这不是一个Xcode项目,而是苹果在2012年2月16日发布的软件包!
发布于 2012-07-12 12:02:35
打开命令行工具DMG,您将找到一个元包,您可以使用命令pkgutil --expand 'Command Line Tools.mpkg' metapackage提取它。打开文本编辑器中刚刚提取的metapackage/Distribution文件,查看包含元包的包:
com.apple.pkg.DevSDK
com.apple.pkg.X11SDK
com.apple.pkg.QuickTimeSDK
com.apple.pkg.OpenGLSDK
com.apple.pkg.WebKitSDK
com.apple.pkg.FireWireSDK
com.apple.pkg.BluetoothSDK
com.apple.pkg.CoreAudioSDK
com.apple.pkg.JavaSDK
com.apple.pkg.clang
com.apple.pkg.llvm-gcc4.2
com.apple.pkg.X11Documentation
com.apple.pkg.DeveloperToolsCLI相应的包文件可以在隐藏的Packages目录中找到。它们的内容可以用pkgutil --payload-files列出。
如果磁盘上有一个文件,并且想知道它来自哪个包:
$ pkgutil --file-info /usr/bin/clang
volume: /
path: /usr/bin/clang
pkgid: com.apple.pkg.clang
pkg-version: 4.3.0.0.1.1249367152
install-time: 1342021874
uid: 0
gid: 0
mode: 755现在,如果您想要删除命令行工具,请提供一些有用的信息。苹果,在他们的无限智慧,拒绝提供这样做的工具,但我们可以获得我们需要的信息,通过使用pkgutil显示有关已安装的软件包的信息。
首先,pkgutil --pkgs将列出所有已安装的软件包。比较上面的包列表的输出。
pkgutil --info将显示有关已安装包的信息;例如:
$ pkgutil --info com.apple.pkg.clang
package-id: com.apple.pkg.clang
version: 4.3.0.0.1.1249367152
volume: /
location: /
install-time: 1342021874
groups: com.apple.FindSystemFiles.pkg-group com.apple.DevToolsBoth.pkg-group com.apple.DevToolsNonRelocatableShared.pkg-grouppkgutil --files将显示已安装包的内容,相对于pkgutil --info提供的volume和location字段。由于不使用绝对路径,所以不能简单地将该命令的输出管道到xargs rm -f以删除包的文件;您必须自己修复路径,可能需要使用类似于pkgutil --files com.example.pkgname | while read line; do rm -f "/install_location/$line"; done的内容。
删除包的文件后,应该运行pkgutil --forget从包数据库中删除有关已安装包的信息。
不用说,如果你尝试这样做的话,你应该非常小心:你只差一个错误就可以把你的系统搞砸,以至于你不得不重新安装它,更不用说你宝贵的数据了!
pkgutil还有一些其他有用的选项,用于验证包的文件是否都存在,以及恢复它们的权限;有关详细信息,请参阅手册页。
通常,这将适用于任何包,但是请注意,有些包可以在安装包时运行嵌入式脚本;显然,仅删除包的文件不会从系统中删除包的所有跟踪。您必须提取包的内容并阅读脚本源代码,然后决定如何最好地自己撤消脚本的效果。
发布于 2012-04-18 20:59:23
我也有一个类似的问题:升级到Xcode 4.3之后,我无法运行"make“。要修复它,我只需将PATH变量设置为包括:
/Applications/Xcode.app/Contents/Developer/usr/bin
/Applications/Xcode.app/Contents/Developer/Tools一旦设置完毕,替换了引用/Developer的旧路径条目,就可以再次从命令行运行"make“。
https://stackoverflow.com/questions/9344107
复制相似问题