Jak sprawdzić, czy są zainstalowane narzędzia wiersza poleceń


106

Mam Macbooka Pro z OS X 10.8.2. XCode jest zainstalowany. Wiem to, ponieważ pojawia się w katalogu Aplikacje. Istnieją również pliki xcodebuild i xcode-select w / usr / bin. Muszę wiedzieć, czy narzędzia wiersza poleceń są zainstalowane. Czy jest na to polecenie? Co mogę zrobić, aby sprawdzić, czy XCode CLT jest zainstalowany, a jeśli tak, to znaleźć zainstalowaną wersję?


Wersja XCode to 4.6
— Vivek Nandavanam

Odpowiedzi:


104

Aktualizacja 10.14 Mojave:

Zobacz aktualizację Yosemite.

Aktualizacja 10.13 High Sierra:

Zobacz aktualizację Yosemite.

Aktualizacja 10.12 Sierra:

Zobacz aktualizację Yosemite.

Aktualizacja 10.11 El Capitan:

Zobacz aktualizację Yosemite.

Aktualizacja 10.10 Yosemite:

Wystarczy wpisać gcclub makew wierszu poleceń! OSX będzie wiedział, że nie masz narzędzi wiersza poleceń i poprosi Cię o ich zainstalowanie!

Aby sprawdzić, czy istnieją, xcode-select -pwydrukuje katalog. Alternatywnie wartość zwracana będzie, 2jeśli NIE istnieją, a 0jeśli tak. Aby po prostu wydrukować wartość zwracaną ( dzięki @Andy ):

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

Aktualizacja 10.9 Mavericks:

Posługiwać się pkgutil --pkg-info=com.apple.pkg.CLTools_Executables

Aktualizacja 10.8:

Opcja 1: Rob Napier zasugerował użycie pkgutil --pkg-info=com.apple.pkg.DeveloperToolsCLI, co prawdopodobnie jest czystsze.

Opcja 2: Sprawdź w środku, /var/db/receipts/com.apple.pkg.DeveloperToolsCLI.plistaby znaleźć odniesienie do wersji, com.apple.pkg.DeveloperToolsCLIa pojawi się lista 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
Okazało się, że otwarcie xcode> Preferencje> Pobieranie> Komponenty zawierało wpis narzędzi wiersza poleceń, który był w stanie aktualizacji, a kiedy go zaktualizowałem, pokazuje stan jako zainstalowany
— Vivek Nandavanam

7
Zamiast sięgać do /var/db/receiptskatalogu, możesz użyć do tego API:pkgutil --pkg-info=com.apple.pkg.DeveloperToolsCLI
— Rob Napier

8
Mogę się mylić, ale nazwa paragonu to teraz CLTools_Executablesprzynajmniej to wszystko, co znajduję w OS Mavericks. Polecenie byłoby wtedy następujące:pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
— Chris,

1
zauważyłem to samo co Jordan. xcode-select nie zwraca int, tylko ścieżkę
— Damon

1
Wpisałem xcode-select-p, tylko po to, aby pobrać /Applications/Xcode.app/Contents/Developer. Co to znaczy?
— studium

77

Yosemite

Poniżej znajduje się kilka dodatkowych kroków na nowym komputerze Mac, których niektórzy mogą potrzebować. To dodaje trochę do doskonałej odpowiedzi @ jnovack.

Aktualizacja: kilka innych uwag dotyczących konfiguracji:

Upewnij się, że administrator ma hasło. Puste hasło nie zadziała podczas próby włączenia użytkownika root.

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

Następnie, aby włączyć root, uruchom dsenablerootw terminalu:

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

dsenableroot:: ***Successfully enabled root user.

Wpisz hasło administratora, a następnie dwukrotnie nowe włączone hasło roota.

Następny typ:

sudo gcc

lub

sudo make

Odpowiedzi w następujący sposób:

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.

Naciśnij klawisz Enter, gdy pojawi się monit o wyświetlenie umowy licencyjnej.

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:

//...

naciśnij q aby zamknąć widok umowy licencyjnej.

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]

Rodzaj agree . A potem skończy się:

clang: error: no input files 

Co w zasadzie oznacza, że ​​nie dałeś make lubgcc żadnych plików wejściowych.

Oto jak wyglądał czek:

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

Mavericks

W przypadku Mavericks jest teraz trochę inaczej.

Kiedy narzędzia NIE zostały znalezione, pkgutilpolecenie zwróciło następujące polecenie:

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

Aby zainstalować narzędzia wiersza poleceń, działa to ładnie z poziomu terminala, z ładnym interfejsem użytkownika i wszystkim.

$ xcode-select --install

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

Po ich znalezieniu pkgutilpolecenie zwróciło następujące informacje:

$ 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 

To polecenie zwróciło to samo przed i po instalacji.

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

Miałem również komponent dla CLT wybrany i zainstalowany wcześniej w sekcji pobierania xcode, ale wygląda na to, że nie dotarł do terminala ...

Mam nadzieję, że to pomoże.


Czy możesz zaktualizować tę odpowiedź dla najnowszych systemów operacyjnych? Dzięki.
— Sparky

Nazwałem sudo rm -rf / Library / Developer / CommandLineTools, a następnie xcode-select --install.
— Oleksii Kyslytsyn

32

Aby sprawdzić, czy narzędzia wiersza poleceń są zainstalowane, uruchom:

xcode-select --version

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

Jeśli narzędzia wiersza poleceń nie są zainstalowane, uruchom:

xcode-select --install

1
Proste i skuteczne. To może być najlepsza odpowiedź.
— Bryan P

12

W systemie macOS Sierra (10.12):

  1. Uruchom następujące polecenie, aby sprawdzić, czy CLT jest zainstalowany:

    xcode-select -p

    spowoduje to zwrócenie ścieżki do narzędzia, jeśli CLT jest już zainstalowany. Coś takiego -

    /Applications/Xcode.app/Contents/Developer
  2. Uruchom następujące polecenie, aby zobaczyć wersję CLT:

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

    to zwróci informacje o wersji, wynik będzie podobny do tego -

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

8

W systemie macOS Catalina i prawdopodobnie w niektórych wcześniejszych wersjach można sprawdzić, gdzie są zainstalowane narzędzia wiersza poleceń, używając:

xcode-select -p znany jako xcode-select --print-path

Który, jeśli jest zainstalowany, odpowie na przykład:

/Library/Developer/CommandLineTools

Aby dowiedzieć się, którą wersję tam zainstalowałeś, możesz użyć:

xcode-select -v znany jako xcode-select --version

Który zwróci coś takiego:

xcode-select version 2370.

Jednakże , jeśli spróbujesz uaktualnić go do najnowszej wersji, zakładając, że jest zainstalowany, korzystając w ten sposób:

xcode-select --install

W odpowiedzi otrzymasz:

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

Co raczej błędnie sprawia wrażenie, że trzeba użyć Spotlight, aby znaleźć coś o nazwie „Aktualizacja oprogramowania”. W rzeczywistości musisz kontynuować w Terminalu i użyć tego:

softwareupdate -i -a znany jako softwareupdate --install --all

Który próbuje zaktualizować wszystko, co może i może odpowiedzieć:

Software Update Tool

Finding available software
No new software available.

Aby dowiedzieć się, które wersje różnych zestawów SDK firmy Apple są zainstalowane na komputerze, użyj tego:

xcodebuild -showsdks


3

Myślę, że najprostszy sposób, który zadziałał dla mnie, aby znaleźć narzędzia wiersza poleceń, jest zainstalowany lub nie i jego wersja, niezależnie od wersji macOS

$brew config

macOS: 10.14.2-x86_64
CLT: 10.1.0.0.1.1539992718
Xcode: 10.1

Dzieje się tak, gdy masz prawidłowo zainstalowane narzędzia wiersza poleceń i prawidłowo ustawione ścieżki.

Wcześniej otrzymałem wyjście jak poniżej
macOS: 10.14.2-x86_64
CLT: N / A
Xcode: 10.1

CLT został pokazany jako N / A pomimo posiadania gcc i sprawia, że ​​działa dobrze i poniżej wyjść

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

Wreszcie wykonanie xcode-select --install rozwiązało mój problem z brew nie mogącym znaleźć CLT do instalowania pakietów, jak poniżej.

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

Wybierz kolejno Aplikacje> Xcode> Preferencje> Pobrane

Powinieneś zobaczyć narzędzia wiersza poleceń, które możesz zainstalować.




0

Ponieważ Xcode obsługuje narzędzia CLI, jeśli jest instalowane jako pierwsze, używam następującej hybrydy, która została sprawdzona w wersjach 10.12 i 10.14. Spodziewam się, że działa na wielu innych wersjach:

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

Sól z awk do smaku dla logiki rozgałęzień.

Oczywiście xcode-select -pobsługuje warianty za pomocą naprawdę krótkiego polecenia, ale nie podaje szczegółowych metadanych pakietu, wersji i daty instalacji.


0

Otwórz terminal i sprawdź, czy masz już zainstalowany Xcode z tym:

xcode-select -p

w zamian, jeśli otrzymasz to:

/Library/Developer/CommandLineTools

Oznacza to, że masz zainstalowany Xcode.

Innym sposobem sprawdzenia, czy masz zainstalowany "HomeBrew", możesz użyć następującego polecenia, aby sprawdzić, czy masz Xcode i wersję:

brew config

I wreszcie, jeśli nie masz Xcode, kliknij ten link, aby pobrać Xcode z Appstore. Xcode ze sklepu App Store .

Powodzenia.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.