Cách kiểm tra xem các công cụ dòng lệnh đã được cài đặt chưa


103

Tôi có một macbook pro với OS X 10.8.2. XCode đã được cài đặt. Tôi biết điều này khi nó xuất hiện trong thư mục Ứng dụng. Ngoài ra còn có các tệp xcodebuild và xcode-select trong / usr / bin mà tôi cần biết nếu các công cụ dòng lệnh đã được cài đặt. Có một lệnh cho nó? Tôi có thể làm gì để xem XCode CLT đã được cài đặt chưa và nếu có để tìm phiên bản đã cài đặt?


Phiên bản của XCode là 4.6
Vivek Nandavanam

Câu trả lời:


104

10.14 Cập nhật Mojave:

Xem Cập nhật Yosemite.

Cập nhật 10.13 High Sierra:

Xem Cập nhật Yosemite.

10.12 Sierra Cập nhật:

Xem Cập nhật Yosemite.

Cập nhật 10.11 El Capitan:

Xem Cập nhật Yosemite.

10.10 Cập nhật Yosemite:

Chỉ cần nhập vào gcchoặc maketrên dòng lệnh! OSX sẽ biết rằng bạn không có các công cụ dòng lệnh và nhắc bạn cài đặt chúng!

Để kiểm tra nếu chúng tồn tại, xcode-select -psẽ in thư mục. Ngoài ra, giá trị trả về sẽ là 2nếu chúng KHÔNG tồn tại và 0nếu có. Để chỉ in giá trị trả về ( cảm ơn @Andy ):

xcode-select -p 1>/dev/null;echo $?

10.9 Cập nhật Mavericks:

Sử dụng pkgutil --pkg-info=com.apple.pkg.CLTools_Executables

10.8 Cập nhật:

Tùy chọn 1: Rob Napier đề xuất sử dụng pkgutil --pkg-info=com.apple.pkg.DeveloperToolsCLI, có lẽ nó sẽ sạch hơn.

Tùy chọn 2: Kiểm tra bên trong /var/db/receipts/com.apple.pkg.DeveloperToolsCLI.plistđể tham khảo com.apple.pkg.DeveloperToolsCLIvà nó sẽ liệt kê phiên bản 4.5.0.

[Mar 12 17:04] [jnovack@yourmom ~]$ defaults read /var/db/receipts/com.apple.pkg.DeveloperToolsCLI.plist
{
    InstallDate = "2012-12-26 22:45:54 +0000";
    InstallPrefixPath = "/";
    InstallProcessName = Xcode;
    PackageFileName = "DeveloperToolsCLI.pkg";
    PackageGroups =     (
        "com.apple.FindSystemFiles.pkg-group",
        "com.apple.DevToolsBoth.pkg-group",
        "com.apple.DevToolsNonRelocatableShared.pkg-group"
    );
    PackageIdentifier = "com.apple.pkg.DeveloperToolsCLI";
    PackageVersion = "4.5.0.0.1.1249367152";
    PathACLs =     {
        Library = "!#acl 1\\ngroup:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:delete\\n";
        System = "!#acl 1\\ngroup:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:delete\\n";
    };
}

1
Tôi thấy rằng xcode mở> Preferences> Downloads> Linh kiện đã có một Command Line Công cụ nhập mà đã ở trong trạng thái cập nhật và khi tôi cập nhật nó, nó cho thấy tình trạng như cài đặt
Vivek Nandavanam

7
Thay vì truy cập vào /var/db/receiptsthư mục, bạn có thể sử dụng API cho nó:pkgutil --pkg-info=com.apple.pkg.DeveloperToolsCLI
Rob Napier

8
Tôi có thể nhầm lẫn, nhưng tên biên nhận bây giờ CLTools_Executablesít nhất đó là tất cả những gì tôi tìm thấy trong OS Mavericks. Lệnh sau đó sẽ là:pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
Chris

1
nhận thấy điều tương tự như Jordan. các xcode-chọn không trả lại một int, chỉ là con đường
Damon

1
Tôi đã nhập xcode-select-p, chỉ để lấy /Application/Xcode.app/Contents/Developer. Nó có nghĩa là gì?
học

77

Yosemite

Dưới đây là một số bước bổ sung trên máy Mac mới mà một số người có thể cần. Điều này bổ sung một chút cho câu trả lời xuất sắc của @ jnovack.

Cập nhật: Một số lưu ý khác khi thiết lập:

Đảm bảo rằng người dùng quản trị của bạn có mật khẩu. Mật khẩu trống sẽ không hoạt động khi cố gắng kích hoạt người dùng root.

System Preferences > Users and Groups > (select user) > Change password

Sau đó, để kích hoạt quyền root, hãy chạy dsenableroottrong một thiết bị đầu cuối:

$ dsenableroot
username = mac_admin_user
user password:
root password:
verify root password:

dsenableroot:: ***Successfully enabled root user.

Nhập mật khẩu của người dùng quản trị viên, sau đó nhập mật khẩu gốc mới được kích hoạt hai lần.

Loại tiếp theo:

sudo gcc

hoặc là

sudo make

Nó sẽ phản hồi như sau:

WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.

To proceed, enter your password, or type Ctrl-C to abort.

Password:


You have not agreed to the Xcode license agreements. You must agree to 
both license agreements below in order to use Xcode.

Nhấn enter khi nó nhắc bạn hiển thị thỏa thuận cấp phép.

Hit the Enter key to view the license agreements at 
'/Applications/Xcode.app/Contents/Resources/English.lproj/License.rtf'

IMPORTANT: BY USING THIS SOFTWARE, YOU ARE AGREEING TO BE BOUND BY THE 
FOLLOWING APPLE TERMS:

//...

Nhấn qđể thoát khỏi chế độ xem thỏa thuận cấp phép.

By typing 'agree' you are agreeing to the terms of the software license 
agreements. Type 'print' to print them or anything else to cancel, 
[agree, print, cancel]

agree. Và sau đó nó sẽ kết thúc bằng:

clang: error: no input files 

Về cơ bản có nghĩa là bạn không cung cấp makehoặc gccbất kỳ tệp đầu vào nào.

Đây là chi phiếu trông như thế nào:

$ xcode-select -p
/Applications/Xcode.app/Contents/Developer

Mavericks

Với Mavericks, bây giờ hơi khác một chút.

Khi KHÔNG tìm thấy các công cụ, đây là những gì lệnh pkgutillệnh trả về:

$ pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
No receipt for 'com.apple.pkg.CLTools_Executables' found at '/'.

Để cài đặt các công cụ dòng lệnh, điều này hoạt động độc đáo từ Terminal, với một gui đẹp và mọi thứ.

$ xcode-select --install

http://macops.ca/installing-command-line-tools-automatically-on-mavericks/

Khi chúng được tìm thấy, đây là những gì pkgutillệnh trả về:

$ pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
package-id: com.apple.pkg.CLTools_Executables
version: 5.0.1.0.1.1382131676
volume: /
location: /
install-time: 1384149984
groups: com.apple.FindSystemFiles.pkg-group com.apple.DevToolsBoth.pkg-group com.apple.DevToolsNonRelocatableShared.pkg-group 

Lệnh này trả về như cũ trước và sau khi cài đặt.

$ pkgutil --pkg-info=com.apple.pkg.DeveloperToolsCLI
No receipt for 'com.apple.pkg.DeveloperToolsCLI' found at '/'.

Ngoài ra, tôi đã chọn và cài đặt thành phần cho CLT trong phần tải xuống của xcode trước đó, nhưng có vẻ như nó không đến được thiết bị đầu cuối ...

Hy vọng rằng sẽ giúp.


Bạn có thể cập nhật câu trả lời này cho các hệ điều hành mới nhất không? Cảm ơn.
Sparky

Tôi đã gọi sudo rm -rf / Library / Developer / CommandLineTools và sau đó xcode-select --install.
Oleksii Kyslytsyn

31

Để kiểm tra xem các công cụ dòng lệnh được cài đặt đã chạy hay chưa:

xcode-select --version

// if installed you will see the below with the version found in your system
// xcode-select version 1234.

Nếu công cụ dòng lệnh chưa được cài đặt, hãy chạy:

xcode-select --install

1
Đơn giản và hiệu quả. Có thể là câu trả lời tốt nhất.
Bryan P,

12

Trên macOS Sierra (10.12):

  1. Chạy lệnh sau để xem CLT đã được cài đặt chưa:

    xcode-select -p

    điều này sẽ trả về đường dẫn đến công cụ nếu CLT đã được cài đặt. Một cái gì đó như thế này -

    /Applications/Xcode.app/Contents/Developer
  2. Chạy lệnh sau để xem phiên bản của CLT:

    pkgutil --pkg-info=com.apple.pkg.CLTools_Executables

    điều này sẽ trả về thông tin phiên bản, đầu ra sẽ giống như thế này -

    package-id: com.apple.pkg.CLTools_Executables
    version: 8.2.0.0.1.1480973914
    volume: /
    location: /
    install-time: 1486372375

8

Trong macOS Catalina và có thể là một số phiên bản trước đó, bạn có thể tìm hiểu nơi các công cụ dòng lệnh được cài đặt bằng cách sử dụng:

xcode-select -p aka xcode-select --print-path

Cái nào, nếu nó được cài đặt, sẽ phản hồi bằng những thứ như:

/Library/Developer/CommandLineTools

Để biết bạn đã cài đặt phiên bản nào ở đó, bạn có thể sử dụng:

xcode-select -v aka xcode-select --version

Điều này sẽ trả về một cái gì đó như:

xcode-select version 2370.

Tuy nhiên , nếu bạn cố gắng nâng cấp nó lên phiên bản mới nhất, giả sử nó đã được cài đặt, hãy sử dụng cách này:

xcode-select --install

Bạn sẽ nhận được phản hồi:

xcode-select: error: command line tools are already installed, use "Software Update" to install updates

Điều khá sai lầm gây ấn tượng rằng bạn cần sử dụng Spotlight, hãy tìm một thứ gọi là 'Cập nhật phần mềm'. Trên thực tế, bạn cần phải tiếp tục trong Terminal và sử dụng:

softwareupdate -i -a aka softwareupdate --install --all

Nó cố gắng cập nhật mọi thứ có thể và có thể đáp ứng tốt với:

Software Update Tool

Finding available software
No new software available.

Để tìm hiểu phiên bản nào của các SDK Apple khác nhau được cài đặt trên máy của bạn, hãy sử dụng tùy chọn này:

xcodebuild -showsdks


3

Tôi nghĩ rằng cách đơn giản nhất đã làm việc để tôi tìm thấy các công cụ Dòng lệnh đã được cài đặt hay chưa và phiên bản của nó bất kể phiên bản macOS là gì

$brew config

macOS: 10.14.2-x86_64
CLT: 10.1.0.0.1.1539992718
Xcode: 10.1

Điều này khi bạn có các công cụ Dòng lệnh được cài đặt đúng cách và các đường dẫn được đặt đúng cách.

Trước đó, tôi nhận được đầu ra như bên dưới
macOS: 10.14.2-x86_64
CLT: N / A
Xcode: 10.1

CLT được hiển thị là N / A mặc dù có gcc và làm việc tốt và đầu ra thấp hơn

$xcode-select -p              
/Applications/Xcode.app/Contents/Developer
$pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
No receipt for 'com.apple.pkg.CLTools_Executables' found at '/'.
$brew doctor
Your system is ready to brew.

Cuối cùng, thực hiện xcode-select --install đã giải quyết được vấn đề của tôi về việc không thể tìm thấy CLT để cài đặt các gói như bên dưới.

Installing sphinx-doc dependency: python
Warning: Building python from source:
  The bottle needs the Apple Command Line Tools to be installed.
  You can install them, if desired, with:
    xcode-select --install

1

Đi tới Ứng dụng> Xcode> tùy chọn> tải xuống

Bạn sẽ thấy các công cụ dòng lệnh ở đó để bạn cài đặt.




0

Vì Xcode sử dụng các công cụ CLI nếu được cài đặt trước, tôi sử dụng kết hợp sau đã được xác thực trên 10.12 và 10.14. Tôi hy vọng nó hoạt động trên nhiều phiên bản khác:

installed=$(pkgutil --pkg-info=com.apple.pkg.CLTools_Executables 2>/dev/null || pkgutil --pkg-info=com.apple.pkg.Xcode)

Muối với awkhương vị cho logic phân nhánh.

Tất nhiên xcode-select -pxử lý các biến thể bằng một lệnh thực sự ngắn nhưng không cung cấp được siêu dữ liệu chi tiết về gói, phiên bản và ngày cài đặt.


0

Mở thiết bị đầu cuối của bạn và kiểm tra xem bạn đã cài đặt Xcode với cái này chưa:

xcode-select -p

đổi lại, nếu bạn nhận được điều này:

/Library/Developer/CommandLineTools

Điều đó có nghĩa là bạn đã cài đặt Xcode.

Một cách khác bạn có thể kiểm tra xem bạn đã cài đặt "HomeBrew" hay chưa, bạn có thể sử dụng lệnh sau để xem liệu bạn có Xcode và phiên bản:

brew config

Và cuối cùng, nếu bạn chưa có Xcode, hãy nhấp vào liên kết này để tải Xcode từ Appstore. Xcode từ App Store .

Chúc may mắn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.