Apple最近发布了Command Line Tools:
命令行工具包中提供了哪些工具?
除了手册页之外还有其他文档吗?
请注意,我已通过在Xcode中添加特定组件来安装这些工具。 此外,这不是关于Xcode项目,而是Apple于2012年2月16日发布的软件包!
答案 0 :(得分:12)
打开命令行工具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-group
pkgutil --files
将显示相对于volume
提供的location
和pkgutil --info
字段的已安装软件包的内容。因为不使用绝对路径,所以不能简单地将此命令的输出传递给xargs rm -f
以删除包的文件;你必须自己修复路径,也许是pkgutil --files com.example.pkgname | while read line; do rm -f "/install_location/$line"; done
。
删除软件包的文件后,应运行pkgutil --forget
以从软件包数据库中删除有关已安装软件包的信息。
没有你宝贵的数据!
pkgutil
还有一些其他有用的选项可用于验证程序包的文件是否全部存在,以及还原其权限;有关详细信息,请参阅its manual page。
通常,这适用于任何软件包,但请注意,某些软件包可以具有在安装软件包时运行的嵌入式脚本;显然,仅删除软件包的文件不会从系统中删除软件包的所有痕迹。您必须提取包的内容并阅读脚本源代码,然后自行决定如何最好地撤消脚本的效果。
答案 1 :(得分:1)
我遇到了类似的问题:升级到Xcode 4.3后我无法运行“make”。要修复它,我只需将我的PATH变量设置为包括:
/Applications/Xcode.app/Contents/Developer/usr/bin
/Applications/Xcode.app/Contents/Developer/Tools
一旦我进行了设置,替换了引用/ Developer的旧PATH条目,我可以再次从命令行运行“make”。