2012-02-18 229 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