Установка Xcode через командную строку


27

Я пользователь Linux и никогда раньше не использовал OSX. Кто-то обратился ко мне за помощью в установке какого-либо программного обеспечения на OSX-сервер "Lion". Я попросил его дать мне SSH-оболочку, предполагая, что этого будет достаточно. Однако все сложнее, чем я думал.

Я хотел установить homebrew, но он не был установлен, потому что в системе не было cc. После некоторого Google, я полагаю, мне нужно установить Xcode. Я только что скачал xcode 4.5 с сайта разработчика Apple и установил его в системе. Он содержит каталог Xcode.appс кучей вещей в нем. Как мне идти отсюда?

Могу ли я установить Xcode без физического доступа к машине? Все, чего я действительно хочу, - это запустить доморощенного в этот момент.

Ответы:


25

Возможно, вам лучше просто установить автономные инструменты командной строки для разработчиков (которые включают gccи другие стандартные элементы набора инструментов для разработчиков). Вы можете получить его из загрузок Apple для разработчиков (для этого требуется бесплатная учетная запись разработчика). К сожалению, прямой ссылки нет, но просто найдите инструменты командной строки, и вы найдете ее (обратите внимание, что существуют разные загрузки для Lion и Mountain Lion).

Загрузка является DMG. Установить , что и вы найдете .mpkgфайл, который можно установить с помощью командной строки : sudo installer -pkg "Command Line Tools.mpkg" -target /.


+1 за то, что вы держите в уме голую упаковку +3 для установки из терминала - я немного отредактирую свой ответ, так как Xcode уже загружен, инструменты находятся в Xcode.app/Contents/Developer и могут быть легко скопированы по удобному пути для запуска.
bmike

Да, я уверен, что / если инструменты, включенные в пакет Xcode, отличаются от отдельной загрузки. Предположительно несколько иное, учитывая, что в Xcode также есть опция загрузки инструментов. В любом случае, если вы начинаете с нуля и хотите, чтобы «чистая» установка выполнялась только из командной строки, это, вероятно, путь.
robmathers

2
Я полагаю, что в прошлый раз, когда я проверял, у инструментов Xcode есть дополнительные заголовки и вещи для обслуживания построения графического интерфейса, а инструменты командной строки разбиты на части / собраны отдельно с немного отличающимися флагами при компиляции, но также обычно имеют ту же версию, что и основной Xcode релизы. На практике я никогда не видел, чтобы различия замечались, не говоря уже о том, AFAIK, XCode тянет упомянутый вами пакет и устанавливает его, чтобы у вас были и версия набора инструментов xcrun, и версия набора инструментов / usr / bin.
bmike

Ура это сработало. Я только что установил варево. В вашем посте есть опечатка, sudo installerвместо нее следует читать sudo install.
Йерун

@Jeroen спасибо за это, исправлено. Не уверен, как я это пропустил.
robmathers

10

Недавно мне пришлось установить инструменты командной строки Xcode на Mountain Lion поверх SSH. Вот как я это сделал.

  1. Если у вас нет бесплатного аккаунта разработчика Apple , , зарегистрироваться для одного

  2. Войдите в https://developer.apple.com/downloads

  3. Загрузите «Инструменты командной строки для XCode», соответствующие вашей версии OSX

    Для меня это были «Инструменты командной строки (OS X Mountain Lion) для Xcode - апрель 2014»

  4. Скопируйте файл DMG на свой пульт

    В следующей команде я использую scp для безопасного копирования файла с локального компьютера на удаленный компьютер с именемremote

    $ scp ~/Downloads/command_line_tools_for_osx_mountain_lion_april_2014.dmg remote:Downloads/
  5. SSH к вашему пульту

    $ ssh remote
  6. смонтировать файл dmg на пульте

    Здесь я использую hdiutil для монтирования образа

    $ hdiutil attach ~/Downloads/command_line_tools_for_osx_mountain_lion_april_2014.dmg
  7. установить пакет, содержащийся в dmg

    Здесь необходимо запустить установщик,sudo поскольку этот пакет должен быть установлен в корневой файловой системе.

    $ cd /Volumes/Command\ Line\ Tools\ \(Mountain\ Lion\)
    $ sudo installer -pkg Command\ Line\ Tools\ \(Mountain\ Lion\).mpkg -target /
  8. размонтировать файл dmg

    $ hdiutil detach /Volumes/Command\ Line\ Tools\ \(Mountain\ Lion\)
  9. удалить файл dmg с пульта; необязательный

    Я не вижу смысла держать его, но вы можете, если хотите.

    $ rm ~/Downloads/command_line_tools_for_osx_mountain_lion_april_2014.dmg

adcdownload.apple.com/Developer_Tools/Xcode_8.3/Xcode_8.3.xip больше не является .dmg. stackoverflow.com/a/39489446/18096 объясняет, как взломать эту гайку.
Мартин Дори

4

Это довольно старый процесс, но для всех, кто прибегает к этому, есть простой встроенный однострочный инструмент для установки инструментов командной строки без необходимости загрузки каких-либо .dmgили .pkgs. Это доступно даже на новой установке macOS.

Команда:

xcode-select --install

По данным manстраницы:

Opens a user interface dialog to request automatic installation of the command line developer tools.

Кажется, он был доступен с тех пор, как появился Xcode 3.0 (OS X 10.5).


1
Я не вижу параметра --install в xcode-select версии 2311, справочной странице от 16 ноября 2011 года, Mac OS X 10.8.5.
Мартин Дори

Я также не в xcode-select версии 2349, справочной странице от 08 марта 2016 года.
user44400

1

Все необходимые инструменты находятся в Xcode.app/Contents/Developer, и если у вас есть эта папка, вы закончили установку, поскольку приложения OS X могут запускаться из любого места.

Если вы хотите использовать Xcode, просто нажмите на значок или open -aпуть к папке Xcode.app, и вы запустите приложение. Большинство людей перемещают папку Xcode.app в / Applications (или ~ / Applications), чтобы «установить ее»

О - когда вы запустите Xcode, вам захочется открыть настройки, перейти на панель «Загрузки» и установить автономные инструменты командной строки. Это помещает цепочку инструментов компиляции в / usr / bin, чтобы вам не приходилось использовать xcrun --find gccи xcrun --find makeопределять путь к инструментам относительно того места, куда вы поместили папку Xcode.app.


Тем не менее, утилиты командной строки также необходимы, чтобы заставить доморощенного работать. Вероятно, проще всего попросить владельца системы OS X установить его для вас (или подключиться через VNC и сделать это самостоятельно)
nohillside

1

Я узнал, что Homebrew также устанавливает инструменты командной строки Xcode .

Большим преимуществом для меня является то, что я могу сделать это с терминала (даже с ssh), а установщик не показывает всплывающее окно UI , которое блокирует меня от использования с удаленным терминалом.

Протестировано с версией Homebrew 2.1.10 (git revision b7d38f; последний коммит 2019-08-12).

Для меня это было намного проще, чем скачать пакет dmg с apple и скопировать его по ssh на целевой компьютер.

Будет сгенерирована команда установщика (скопировано с сайта)

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

следующий вывод:

==> This script will install:
/usr/local/bin/brew
/usr/local/share/doc/homebrew
/usr/local/share/man/man1/brew.1
/usr/local/share/zsh/site-functions/_brew
/usr/local/etc/bash_completion.d/brew
/usr/local/Homebrew
==> The following new directories will be created:
/usr/local/bin
/usr/local/etc
/usr/local/include
/usr/local/lib
/usr/local/sbin
/usr/local/share
/usr/local/var
/usr/local/opt
/usr/local/share/zsh
/usr/local/share/zsh/site-functions
/usr/local/var/homebrew
/usr/local/var/homebrew/linked
/usr/local/Cellar
/usr/local/Caskroom
/usr/local/Homebrew
/usr/local/Frameworks
==> The Xcode Command Line Tools will be installed.

а также

...
Downloading Command Line Tools (macOS Mojave version 10.14) for Xcode
Downloaded Command Line Tools (macOS Mojave version 10.14) for Xcode
Installing Command Line Tools (macOS Mojave version 10.14) for Xcode
Done with Command Line Tools (macOS Mojave version 10.14) for Xcode
...


-1

MOUNT XCODE DMG

tell application "Finder" to open ("Macintosh HD")
tell application "Finder"
    activate
    set target of Finder window 1 to folder "Downloads" of folder "vagrant" of folder "Users" of startup disk
    open document file "{{ osx_xcode_file }}" of folder "Downloads" of folder "vagrant" of folder "Users" of startup disk
end tell

Замените Xcode "{{osx_xcode_file}}" на версию / имя файла, который вы скачали.

Установите XCODE

tell application "Finder"
    activate "Xcode"
    with timeout of 1000000 seconds
        copy file "Xcode:Xcode.app" to folder "Macintosh HD:Applications"
    end timeout
end tell

При желании Удалить предыдущий XCODE

rm /Applications/Xcode.app вызывает непредвиденные проблемы

tell application "Finder"
    activate "Applications"
    considering case
        with timeout of 1000000 seconds
            set sourceFolder to POSIX file "/Applications/Xcode.app"
            try
                delete sourceFolder
            on error errorMessage number errorNumber
                set _error to errorMessage
                set _errorNum to errorNumber
            end try
        end timeout
    end considering
end tell

Сохраните каждый файл как scriptname.scpt

run: / usr / bin / osascript scriptname.scpt Запуск от имени пользователя консоли (НЕ ROOT)


Как вы можете запустить это через SSH? Кроме того, как это лучше, чем в командной строке только инструменты разработчика?
user151019

Привет, Марк, у нас есть особое требование для полной установки xcode. ssh user @ hostname "onascript <путь / к / файлу> /myscript.scpt
casibbald
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.