Como verificar se as ferramentas de linha de comando estão instaladas


103

Eu tenho um macbook pro com OS X 10.8.2. XCode está instalado. Eu sei disso como aparece no diretório de aplicativos. Existem também os arquivos xcodebuild e xcode-select em / usr / bin. Preciso saber se as ferramentas de linha de comando estão instaladas. Existe um comando para isso? O que posso fazer para ver se o XCode CLT está instalado e, em caso afirmativo, para encontrar a versão instalada?


A versão do XCode é 4.6
Vivek Nandavanam

Respostas:


104

10.14 Atualização do Mojave:

Veja a atualização do Yosemite.

10.13 Atualização High Sierra:

Veja a atualização do Yosemite.

10.12 Atualização do Sierra:

Veja a atualização do Yosemite.

10.11 Atualização do El Capitan:

Veja a atualização do Yosemite.

10.10 Atualização do Yosemite:

Basta entrar em gccou makena linha de comando! OSX saberá que você não possui as ferramentas de linha de comando e solicitará que você as instale!

Para verificar se existem, xcode-select -pirá imprimir o diretório. Alternativamente, o valor de retorno será 2se eles NÃO existirem e 0se existirem . Para imprimir apenas o valor de retorno ( obrigado @Andy ):

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

10.9 Atualização do Mavericks:

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

10.8 Atualização:

Opção 1: Rob Napier sugeriu usar pkgutil --pkg-info=com.apple.pkg.DeveloperToolsCLI, que provavelmente é mais limpo.

Opção 2: verifique o interior /var/db/receipts/com.apple.pkg.DeveloperToolsCLI.plistpara obter uma referência com.apple.pkg.DeveloperToolsCLIe listará a versão 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
Descobri que abrir xcode> Preferências> Downloads> Componentes tinha uma entrada de Ferramentas de Linha de Comando que estava no estado de atualização e quando eu a atualizei, ela mostra o status como instalado
Vivek Nandavanam

7
Em vez de acessar o /var/db/receiptsdiretório, você pode usar a API para isso:pkgutil --pkg-info=com.apple.pkg.DeveloperToolsCLI
Rob Napier

8
Posso estar enganado, mas o nome do recibo é agora CLTools_Executablespelo menos isso é tudo que encontro em OS Mavericks. O comando seria então:pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
Chris,

1
notou a mesma coisa que Jordan. o xcode-select não retorna um int, apenas o caminho
Damon

1
Entrei em xcode-select-p, apenas para obter /Applications/Xcode.app/Contents/Developer. O que isso significa?
estudo de

77

Yosemite

Abaixo estão algumas etapas extras em um Mac novo que algumas pessoas podem precisar. Isso acrescenta um pouco à excelente resposta de @jnovack.

Atualização: algumas outras notas ao configurar isso:

Certifique-se de que seu usuário administrador tenha uma senha. Uma senha em branco não funcionará ao tentar habilitar um usuário root.

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

Então, para habilitar o root, execute dsenablerootem um terminal:

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

dsenableroot:: ***Successfully enabled root user.

Digite a senha do usuário admin e, em seguida, a nova senha root habilitada duas vezes.

Próximo tipo:

sudo gcc

ou

sudo make

Ele responderá com algo como o seguinte:

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.

Pressione Enter quando for solicitado a mostrar o contrato de licença.

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:

//...

Pressione qpara sair da visualização do contrato de licença.

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]

Digite agree. E então terminará com:

clang: error: no input files 

Que basicamente significa que você não deu makeou gccquaisquer arquivos de entrada.

Esta é a aparência do cheque:

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

Mavericks

Com o Mavericks, é um pouco diferente agora.

Quando as ferramentas NÃO foram encontradas, isto é o que o pkgutilcomando retornou:

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

Para instalar as ferramentas de linha de comando, isso funciona muito bem no Terminal, com uma bela interface e tudo.

$ xcode-select --install

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

Quando foram encontrados, o pkgutilcomando retornou assim:

$ 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 

Este comando retornou o mesmo antes e depois da instalação.

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

Também tive o componente para o CLT selecionado e instalado na seção de downloads do xcode antes, mas parece que não chegou ao terminal ...

Espero que ajude.


Você pode atualizar esta resposta para os sistemas operacionais mais recentes? Obrigado.
Sparky de

Chamei sudo rm -rf / Library / Developer / CommandLineTools e, em seguida, xcode-select --install.
Oleksii Kyslytsyn

31

Para verificar se as ferramentas de linha de comando estão instaladas, execute:

xcode-select --version

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

Se as ferramentas de linha de comando não estiverem instaladas, execute:

xcode-select --install

1
Simples e eficaz. Pode ser a melhor resposta.
Bryan P

12

No macOS Sierra (10.12):

  1. Execute o seguinte comando para ver se CLT está instalado:

    xcode-select -p

    isso retornará o caminho para a ferramenta se o CLT já estiver instalado. Algo assim -

    /Applications/Xcode.app/Contents/Developer
  2. Execute o seguinte comando para ver a versão do CLT:

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

    isso retornará informações da versão, a saída será algo como isto -

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

8

No macOS Catalina , e possivelmente em algumas versões anteriores, você pode descobrir onde as ferramentas da linha de comando estão instaladas usando:

xcode-select -p também conhecido como xcode-select --print-path

Que irá, se instalado, responder com algo como:

/Library/Developer/CommandLineTools

Para descobrir qual versão você instalou lá, você pode usar:

xcode-select -v também conhecido como xcode-select --version

Que retornará algo como:

xcode-select version 2370.

No entanto , se você tentar atualizá-lo para a versão mais recente, presumindo que esteja instalado, use o seguinte:

xcode-select --install

Você receberá em resposta:

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

O que dá a impressão de que você precisa usar o Spotlight para encontrar algo chamado 'Atualização de software'. Na verdade, você precisa continuar no Terminal e usar isto:

softwareupdate -i -a também conhecido como softwareupdate --install --all

Que tenta atualizar tudo o que pode e pode muito bem responder com:

Software Update Tool

Finding available software
No new software available.

Para descobrir quais versões dos diferentes Apple SDKs estão instaladas em sua máquina, use isto:

xcodebuild -showsdks


3

Acho que a maneira mais simples que funcionou para encontrar ferramentas de linha de comando está instalada ou não e sua versão, independentemente da versão do macOS

$brew config

macOS: 10.14.2-x86_64
CLT: 10.1.0.0.1.1539992718
Xcode: 10.1

Isso quando você tiver as ferramentas de linha de comando instaladas corretamente e os caminhos configurados corretamente.

Anteriormente, recebi a saída como abaixo
macOS: 10.14.2-x86_64
CLT: N / A
Xcode: 10.1

CLT foi mostrado como N / A, apesar de ter gcc e fazer funcionar bem e saídas abaixo

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

Finalmente, fazer xcode-select --install resolveu meu problema de brew incapaz de encontrar CLT para instalar pacotes como abaixo.

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

Vá para Aplicativos> Xcode> preferências> downloads

Você deve ver as ferramentas de linha de comando para instalar.




0

Como o Xcode inclui as ferramentas CLI se instaladas primeiro, eu uso o seguinte híbrido, que foi validado em 10.12 e 10.14. Espero que funcione em muitas outras versões:

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

Sal com awkgosto para ramificar a lógica.

É claro que xcode-select -plida com as variações com um comando muito curto, mas falha em fornecer metadados detalhados do pacote, versão e data de instalação.


0

Abra seu terminal e verifique se você já tem o Xcode instalado com este:

xcode-select -p

em troca, se você receber este:

/Library/Developer/CommandLineTools

Isso significa que você tem o Xcode instalado.

Outra maneira de verificar se você tem o "HomeBrew" instalado, você pode usar o seguinte comando para ver se você tem o Xcode e a versão:

brew config

E, finalmente, se você não tiver o Xcode, siga este link para baixar o Xcode da Appstore. Xcode da App Store .

Boa sorte.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.