2012-02-18 39 views
22

Apple gần đây đã phát hành Command Line Tools:XCode 4.3 Command Line Công cụ

  1. các công cụ được cung cấp trong Command Line Công cụ gói là gì?

  2. Có loại tài liệu nào khác ngoài trang của người đàn ông không?

Xin lưu ý rằng tôi đã cài đặt các công cụ này bằng cách thêm thành phần cụ thể vào Xcode. Ngoài ra, đây không phải là về dự án Xcode, mà là gói do Apple phát hành vào ngày 16 tháng 2 năm 2012!

+0

Tôi sẽ tưởng tượng chúng sẽ có sẵn dưới dạng dòng lệnh sau đó như thường lệ. Usuaully họ được cài đặt vào '/ usr/bin' hoặc symlinked ở đó. Ít nhất đó là cách nó được trong quá khứ. Bây giờ chúng không được cài đặt sẵn theo mặc định, không chắc chắn vị trí cài đặt là gì. – prodigitalson

+0

Đây chỉ là một tập con của các công cụ dev với GCC và tiêu đề để biên dịch phần mềm cũng như xây dựng các công cụ có thể không có trên hệ thống của chúng theo mặc định như tạo llvm, v.v. Bạn đã từng cài đặt Xcode đầy đủ , bây giờ nó được chia ra thành một mpkg thành phần riêng biệt mà là siêu thuận tiện cho những người sử dụng Homebrew hoặc Macports nhưng không thực sự cần XCode. Chính xác thì bạn đang cố gắng tìm/sử dụng cái gì? NẾU bạn đã cài đặt Xcode, bạn đã có công cụ này rồi. – prodigitalson

+2

i dunno về việc tạo một dự án nhưng để xây dựng bạn sẽ làm 'xcodebuild', có' xcodeindex' chỉ mục một thư mục dự án. và 'xcode-select' chọn vị trí của thư mục Xcode (có lẽ nếu bạn có nhiều phiên bản của xcode hoặc nhiều phiên bản của các công cụ liên quan). Nếu bạn thực hiện 'man xcode-select', bạn sẽ thấy một số công cụ bổ sung có liên quan được liệt kê ở cuối. Sau đó, bạn có thể thực hiện 'man' cho bất kỳ công cụ nào khác để sử dụng. – prodigitalson

Trả lời

12

Mở công cụ dòng lệnh DMG và bạn sẽ tìm thấy gói meta, mà bạn có thể trích xuất bằng lệnh pkgutil --expand 'Command Line Tools.mpkg' metapackage. Mở metapackage/Distribution tập tin vừa được tách ra trong một trình soạn thảo văn bản để xem các gói mà bao gồm siêu gói:

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 

Các tập tin gói tương ứng được tìm thấy trong một Packages thư mục ẩn bên cạnh siêu gói. Nội dung của họ có thể được liệt kê với pkgutil --payload-files.

Nếu bạn có một tập tin trên đĩa, và muốn biết những gói nó đến từ:

$ 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 

Bây giờ, một số thông tin thưởng rằng sẽ hữu ích nếu bạn muốn loại bỏ sự công cụ dòng lệnh. Apple, trong trí tuệ vô hạn của họ, từ chối cung cấp một công cụ để làm như vậy, nhưng chúng tôi có thể có được thông tin chúng tôi cần bằng cách sử dụng pkgutil để hiển thị thông tin về các gói đã cài đặt.

Thứ nhất, pkgutil --pkgs sẽ liệt kê tất cả các gói đã cài đặt. So sánh đầu ra của danh sách các gói ở trên.

pkgutil --info sẽ hiển thị thông tin về gói đã cài đặt; ví dụ:

$ 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 sẽ hiển thị nội dung của một gói phần mềm được cài đặt, tương đối so với volumelocation lĩnh vực do pkgutil --info. Bởi vì các đường dẫn tuyệt đối không được sử dụng, bạn không thể đơn giản dẫn đầu ra của lệnh này đến xargs rm -f để xóa các tệp của gói; bạn sẽ phải tự sửa các đường dẫn, có lẽ với một cái gì đó như pkgutil --files com.example.pkgname | while read line; do rm -f "/install_location/$line"; done.

Khi tệp của gói bị xóa, pkgutil --forget sẽ được chạy để xóa thông tin về gói đã cài đặt khỏi cơ sở dữ liệu gói.

nên mà không cần phải nói rằng bạn nên rất cẩn thận nếu bạn thử điều này: bạn là một lỗi đánh lừa hệ thống của bạn quá tệ nên bạn sẽ phải cài đặt lại nó, để nói gì về quý giá của bạn dữ liệu!

pkgutil có một số tùy chọn hữu ích khác để xác minh rằng tất cả các tệp của gói đều có mặt và để khôi phục quyền của chúng; xem its manual page để biết chi tiết.

Nói chung, điều này sẽ làm việc cho bất kỳ gói nào, tuy nhiên lưu ý rằng một số gói có thể có các tập lệnh nhúng chạy khi gói được cài đặt; rõ ràng, chỉ xóa các tệp của gói sẽ không xóa tất cả dấu vết của gói khỏi hệ thống của bạn. Bạn sẽ phải trích xuất nội dung của gói và đọc mã nguồn của tập lệnh, sau đó quyết định cách tốt nhất để hoàn tác các hiệu ứng của tập lệnh.

1

Tôi gặp sự cố tương tự: Tôi không thể chạy "thực hiện" sau khi nâng cấp lên Xcode 4.3. Để khắc phục nó, tôi chỉ cần đặt biến PATH của tôi bao gồm:

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

Một khi tôi đã là thiết lập, thay thế mục PATH cũ của tôi đề cập đến/nhà phát triển, tôi có thể chạy một "làm" từ dòng lệnh một lần nữa.

+2

Đây không phải là về việc chạy 'make' trong dòng lệnh ... Tôi muốn các công cụ này được liệt kê với tài liệu thích hợp cũng như cách tạo các dự án xcode từ dòng lệnh. – Alerty

+0

Tôi đã xem xét việc tạo các thư mục * .xcodeproj từ dòng lệnh nhưng cuối cùng tôi đã tạo một dự án mới từ bên trong Xcode. Lệnh để xây dựng dự án là: 'xcodebuild -configuration Debug' cho phiên bản gỡ lỗi (rõ ràng) và' xcodebuild -configuration Release' cho phiên bản phát hành. Đối với tài liệu, tốt nhất tôi có thể cung cấp cho bạn là 'man xcodebuild'. – S2VpdGgA

+0

Đó là điều mặc dù không có công cụ dòng lệnh từ Apple, với kiến ​​thức của tôi, tạo ra một dự án xcode. Để xây dựng một dự án, bạn cần một tệp dự án. – Alerty

Các vấn đề liên quan