Ale*_*rty 22 documentation xcode command-line
Apple最近发布了命令行工具:
Command Line Tools包中提供了哪些工具?
除了手册页之外还有某种文档吗?
请注意,我已通过在Xcode中添加特定组件来安装这些工具.此外,这不是关于Xcode项目,而是Apple于2012年2月16日发布的软件包!
Sam*_*ris 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
Run Code Online (Sandbox Code Playgroud)
相应的包文件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
Run Code Online (Sandbox Code Playgroud)
现在,如果您想要删除命令行工具,一些奖励信息将非常有用.Apple以其无限的智慧拒绝提供这样做的工具,但我们可以通过使用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
Run Code Online (Sandbox Code Playgroud)
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还有一些其他有用的选项可用于验证包的文件是否全部存在,以及用于恢复其权限; 有关详细信息,请参见其手册页.
一般来说,这适用于任何软件包,但请注意,某些软件包可以具有在安装软件包时运行的嵌入式脚本; 显然,仅删除软件包的文件不会从系统中删除软件包的所有痕迹.您必须提取包的内容并阅读脚本源代码,然后决定如何最好地自行撤消脚本的效果.