2012-02-18 233 views
22

苹果公司近日发布Command Line Tools的XCode 4.3命令行工具

  1. 什么是命令行工具包提供的工具?

  2. 是否有某种文档,而不是手册页?

请注意,我已经通过在Xcode中添加特定组件来安装这些工具。 另外,这不是关于Xcode项目,而是2012年2月16日Apple发布的程序包

+0

我想他们应该可以在命令行中使用,然后按照惯例。通常它们会被安装到'/ usr/bin'或者在那里被符号链接。至少它是如何过去的。现在,他们并没有捆绑在默认情况下安装im不知道安装位置是什么。 – prodigitalson 2012-02-18 19:00:19

+0

这只是开发工具的一个子集,包含用于编译软件的GCC和头文件,以及可能不在系统中的构建工具,例如make llvm等。您以前必须安装Xcode才能获得这些东西,现在它被分割成一个单独的组件mpkg,这对于那些使用Homebrew或Macports来说非常方便,但实际上并不需要XCode。你究竟在寻找/使用什么?如果你已经安装了Xcode,你应该已经有了这个东西。 – prodigitalson 2012-02-19 02:46:12

+2

我不知道创建一个项目,但建立你会做'xcodebuild',有'xcodeindex'索引项目文件夹。和'xcode-select'选择Xcode文件夹的位置(假设你有多个版本的xcode或多个版本的相关工具)。如果你使用'man xcode-select',你会看到许多其他工具,这些工具在最后列出。然后,您可以为任何其他工具使用'man'。 – prodigitalson 2012-02-19 04:12:08

回答

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将显示一个已安装的包的相对于由pkgutil --info给出的volumelocation字段的内容,。因为不使用绝对路径,所以不能简单地将此命令的输出传送到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

我有一个类似的问题:我升级到Xcode 4.3后无法运行“make”。为了解决这个问题,我只是把我的PATH变量包括:

/Applications/Xcode.app/Contents/Developer/usr/bin 
/Applications/Xcode.app/Contents/Developer/Tools 

一旦我有这样的设置,更换我提到/开发老路项,我可以运行一个命令行“做”了。

+2

这不是关于在命令行中运行“make”的问题......我希望通过相应的文档列出这些工具以及从命令行创建xcode项目的方法。 – Alerty 2012-04-18 23:17:11

+0

我已经研究过从命令行生成* .xcodeproj文件夹,但是我最终只是从Xcode中创建了一个新项目。构建项目的命令是:调试版本(显然)为'xcodebuild -configuration Debug',发布版本为'xcodebuild -configuration Release'。至于文档,我能给你的最好的是'man xcodebuild'。 – S2VpdGgA 2012-04-19 12:50:54

+0

虽然没有苹果公司的命令行工具,但据我所知,它创建了一个xcode项目。为了建立一个项目,你需要一个项目文件。 – Alerty 2012-04-19 15:30:59