Як перевірити, чи встановлені інструменти командного рядка


104

У мене є macbook pro з ОС X 10.8.2. XCode встановлено. Я знаю це, як це відображається в каталозі програм. Також є файли xcodebuild і xcode-select у / usr / bin. Мені потрібно знати, чи встановлені інструменти командного рядка. Чи є для нього команда? Що я можу зробити, щоб встановити XCode CLT і якщо так, щоб знайти встановлену версію?


Версія XCode 4.6
Vivek Nandavanam

Відповіді:


104

10.14 Оновлення Mojave:

Дивіться оновлення Yosemite.

10.13 Високе оновлення Сьєрра:

Дивіться оновлення Yosemite.

10.12 Оновлення Сьєрри:

Дивіться оновлення Yosemite.

10.11 Оновлення El Capitan:

Дивіться оновлення Yosemite.

10.10 Оновлення Yosemite:

Просто введіть gccабо makeв командному рядку! OSX буде знати, що у вас немає інструментів командного рядка, і запропонує встановити їх!

Щоб перевірити, чи існують вони, xcode-select -pнадрукуйте каталог. Крім того, повернене значення буде, 2якщо їх НЕ існує, і 0якщо вони є. Щоб просто надрукувати повернене значення ( спасибі @Andy ):

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

10.9 Оновлення Mavericks:

Використовуйте pkgutil --pkg-info=com.apple.pkg.CLTools_Executables

10.8 Оновлення:

Варіант 1: Роб Нап'єр запропонував використовувати pkgutil --pkg-info=com.apple.pkg.DeveloperToolsCLI, що, ймовірно, чистіше.

Варіант 2: Позначте всередині, /var/db/receipts/com.apple.pkg.DeveloperToolsCLI.plistна яке посилаєтесь, com.apple.pkg.DeveloperToolsCLIі в ньому буде вказана версія 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
Я виявив, що при відкритті xcode> Налаштування> Завантаження> Компоненти мали запис інструментів командного рядка, який був у стані оновлення, і коли я оновив його, він показує статус встановленого
Vivek Nandavanam,

7
Замість того, щоб потрапити в /var/db/receiptsкаталог, ви можете використовувати API для нього:pkgutil --pkg-info=com.apple.pkg.DeveloperToolsCLI
Rob Napier

8
Я можу помилитися, але назва квитанції тепер CLTools_Executablesпринаймні це все, що я знаходжу в OS Mavericks. Командою було б:pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
Кріс

1
помітив те саме, що й Йордан. xcode-select не повертає інт, а лише шлях
Деймон

1
Я ввів xcode-select-p, тільки щоб отримати /Applications/Xcode.app/Contents/Developer. Що це означає?
навчання

77

Йосеміт

Нижче наведено кілька додаткових кроків на новому Mac, який може знадобитися деяким людям. Це трохи додає чудової відповіді @ jnovack.

Оновлення: кілька інших приміток при налаштуванні:

Переконайтеся, що у вашого адміністратора є пароль. Пустий пароль не працюватиме при спробі ввімкнути кореневого користувача.

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

Потім, щоб увімкнути root, запустіть dsenablerootу терміналі:

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

dsenableroot:: ***Successfully enabled root user.

Введіть пароль користувача адміністратора, а потім новий увімкнений пароль для кореня двічі.

Наступний тип:

sudo gcc

або

sudo make

Він відповість приблизно так:

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.

Натисніть клавішу Enter, коли буде запропоновано показати вам ліцензійну угоду.

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:

//...

Натисніть, qщоб вийти з подання ліцензійної угоди.

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. І тоді це закінчиться:

clang: error: no input files 

Це в основному означає, що ви не дали makeабо gccввели жодні файли вводу.

Ось як виглядав чек:

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

Маверики

З Mavericks зараз трохи інакше.

Коли інструменти НЕ були знайдені, ось що pkgutilповернула команда команд:

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

Щоб встановити інструменти командного рядка, це добре працює з терміналу, з гарним gui та всім.

$ xcode-select --install

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

Коли вони були знайдені, pkgutilкоманда повертається:

$ 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 

Ця команда повертала те саме до і після встановлення.

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

Також у мене був вибраний і встановлений компонент для CLT в розділі завантажень xcode раніше, але, схоже, він не ввійшов до терміналу ...

Сподіваюся, що це допомагає.


Чи можете ви оновити цю відповідь для останніх операційних систем? Дякую.
Спаркі

Я закликав sudo rm -rf / Library / Developer / CommandLineTools, а потім xcode-select --install.
Олексій

31

Щоб перевірити, чи встановлені інструменти командного рядка, запустіть:

xcode-select --version

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

Якщо інструменти командного рядка не встановлені, запустіть:

xcode-select --install

1
Простий і ефективний. Можливо, найкраща відповідь.
Брайан П

12

На macOS Сьєрра (10.12):

  1. Виконайте таку команду, щоб перевірити, чи встановлено CLT:

    xcode-select -p

    це поверне шлях до інструменту, якщо CLT вже встановлений. Щось на зразок цього -

    /Applications/Xcode.app/Contents/Developer
  2. Виконайте таку команду, щоб побачити версію CLT:

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

    це поверне інформацію про версію, вихід буде приблизно таким -

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

8

У macOS Catalina і, можливо, деяких попередніх версіях ви можете дізнатися, де встановлені інструменти командного рядка, використовуючи:

xcode-select -p ака xcode-select --print-path

Що, якщо він встановлений, відповість чимось на зразок:

/Library/Developer/CommandLineTools

Щоб дізнатися, яку версію ви там встановили, ви можете використовувати:

xcode-select -v ака xcode-select --version

Що поверне щось на кшталт:

xcode-select version 2370.

Однак якщо ви спробуєте оновити його до останньої версії, припускаючи, що вона встановлена, скористайтеся цим:

xcode-select --install

Ви отримаєте відповідь:

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

Що досить помилково створює враження, що вам потрібно використовувати Spotlight, щоб знайти щось, що називається "Оновлення програмного забезпечення". Насправді вам потрібно продовжити в Терміналі і використовувати це:

softwareupdate -i -a ака softwareupdate --install --all

Котрий намагається оновити все, що може, і може відповісти:

Software Update Tool

Finding available software
No new software available.

Щоб дізнатися, які версії різних SDK-дисків Apple встановлені на вашій машині, скористайтеся цим:

xcodebuild -showsdks


3

Я думаю, що найпростіший спосіб, який працював для мене, встановити інструменти командного рядка, встановлений чи ні, і його версія незалежно від версії macOS

$brew config

macOS: 10.14.2-x86_64
CLT: 10.1.0.0.1.1539992718
Xcode: 10.1

Це відбувається, коли інструменти командного рядка правильно встановлені та шляхи встановлені належним чином.

Раніше я отримував вихід, як нижче
macOS: 10.14.2-x86_64
CLT: N / A
Xcode: 10.1

CLT було показано як N / A, незважаючи на те, що gcc і працювати нормально і нижче виходів

$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.

Нарешті, виконуючи xcode-select - встановлення вирішило мою проблему з пивом, не вдалося знайти CLT для встановлення пакетів, як показано нижче.

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

Перейдіть до програми> Xcode> налаштування> завантаження

Ви повинні побачити там інструменти командного рядка для встановлення.




0

Оскільки Xcode підключає інструменти CLI, якщо він встановлений спочатку, я використовую наступний гібрид, який був перевірений 10.12 та 10.14. Я думаю, він працює на багатьох інших версіях:

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

Сіль за awkсмаком для логіки розгалуження.

Звичайно, xcode-select -pобробляє варіанти дуже короткою командою, але не вдається надати детальні метадані пакета, версії та дати встановлення.


0

Відкрийте свій термінал і перевірте, чи у вас вже встановлений Xcode:

xcode-select -p

взамін, якщо ви отримаєте це:

/Library/Developer/CommandLineTools

Це означає, що у вас встановлений Xcode.

Іншим способом ви можете перевірити, чи встановлено "HomeBrew", ви можете скористатися наступною командою, щоб побачити, чи є у вас Xcode та версія:

brew config

І нарешті, якщо у вас немає коду, перейдіть за цим посиланням, щоб завантажити Xcode з Appstore. Xcode з App Store .

Щасти.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.