Instalowanie narzędzi wiersza polecenia Xcode

32

Przeprowadziłem nową instalację systemu macOS Mojave 10.14. Zaraz potem zainstalowałem Xcode w wersji 10.0 (10A255) z Mac App Store.

Teraz chcę zainstalować Homebrew, który wymaga zainstalowania narzędzi wiersza poleceń Xcode. Rozumiem, że instalacja Xcode również instaluje Narzędzia wiersza poleceń. Albo nie?

Zgodnie z tą odpowiedzią sprawdziłem, czy Narzędzia wiersza poleceń są zainstalowane, uruchamiając:

xcode-select -p

który wydrukował ścieżkę do katalogu programisty w następujący sposób:

/Applications/Xcode.app/Contents/Developer

Zgodnie z sugestią w odpowiedzi zweryfikowałem również wartość zwracaną, uruchamiając:

echo $?

który się zestroił 0.

Ja również pobiegłem, gcca makebash był w stanie je zlokalizować i wykonać.

Do tej pory jestem przekonany, że narzędzia wiersza polecenia Xcode są zainstalowane. Teraz kiedy wykonam:

xcode-select --install

Otrzymuję ten alert:

wprowadź opis zdjęcia tutaj

Jaki jest prawdopodobny powód tej rozbieżności? Czy to dwukrotnie zainstaluje Narzędzia wiersza poleceń Xcode? Lub zastąpić istniejącą instalację?

Jak rozumiem, narzędzia wiersza polecenia Xcode można zainstalować bez instalowania Xcode. Z mojego dotychczasowego doświadczenia wynika, że ​​jeśli Narzędzia wiersza poleceń nie są instalowane oddzielnie od Xcode (przez uruchomienie xcode-select --install), nie są one wykrywane przez Homebrew, tj. Podczas działania brew configwartość dla CLT:jest pokazana jako N/A.

Oto pełny obraz (wybacz kalambur):

wprowadź opis zdjęcia tutaj

Chociaż mówię w kontekście macOS Mojave, pytanie pozostaje takie samo w odniesieniu do poprzednich wersji macOS.

Jakie jest zalecane podejście tutaj?

Uwaga : po zainstalowaniu Xcode uruchomiłem go, zaakceptowałem umowę licencyjną i pozwoliłem zakończyć instalację dodatkowych narzędzi (co jest jednorazową czynnością).

Nimesh Neema
źródło

Odpowiedzi:

25

Najwyraźniej istnieje pewne rozróżnienie między narzędziami wiersza poleceń zainstalowanymi do użytku przez Xcode a narzędziami zainstalowanymi do użytku ogólnosystemowego:

W przypadku mojego komputera uruchomienie xcode-select --installi wybranie instalacji narzędzi z wyskakującego okna pomogło rozwiązać problem. Udało mi się potwierdzić, że problem został rozwiązany podczas uruchamiania brew configi wyświetlania prawidłowego wpisu dla CLT:

macOS: 10.14-x86_64
CLT: 10.0.0.0.1.1535735448
Xcode: 10.0
Steven Peters
źródło
1
(komentując seo) Jestem tutaj, ponieważ moje gitpolecenia zawiodły. Ta odpowiedź była poprawką potrzebną do gitponownego uruchomienia poleceń, np. git branchitp.
Jacksonkr,
1
Możesz także wybrać wersję Xcode dla CLT w preferencjach Xcode na karcie Lokalizacja. Zobaczysz mnóstwo odnośników online do zakładki „pliki do pobrania”, która już nie istnieje. Czy ktoś może rzucić światło na to, co faktycznie robi ten wybór w Xcode? brew config potwierdza, że ​​mam zainstalowany CLT, ale Qt narzeka, że ​​potrzebuję Xcode 5 (tak, 5, WTH). Najwyraźniej ten wybór CLT ma z tym coś wspólnego.
Oscar
24

Miałem ten sam problem po aktualizacji do Mojave. Bieganie

xcode-select --install

Doprowadziło do błędu

Nie można zainstalować oprogramowania, ponieważ nie jest ono obecnie dostępne z serwera aktualizacji oprogramowania

Pobieranie narzędzi wiersza polecenia z developer.apple.com w końcu rozwiązało problem.

Daniel Cimring
źródło
1
Link był bardzo pomocny developer.apple.com/download/more
philip oghenerobo balogun
0

Natrafiłem na podobny problem, próbując zainstalować niektóre pakiety Pythona (z zależnością jsonnet) i znalazłem rozwiązanie tutaj . Po bieganiu;

xcode-select --install

Najwyraźniej nadal musisz zainstalować pakiet, co możesz zrobić z terminala;

open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

Chociaż Steven już odpowiedział na twoje pytanie, mam nadzieję, że to komuś pomoże!

Forcetti
źródło
-2

Pobieranie narzędzi wiersza polecenia z developer.apple.com rozwiązało problem, jednak pobrano narzędzia wiersza polecenia dla Xcode 10.14, a nie wersji Beta ...

Mam nadzieję, że to rozwiąże problem ...

malkitjoshi
źródło