Почему мне не нужно устанавливать программы?

Я только начал использовать Mac для разработки iOS после двух десятилетий использования Windows, и я удивлен и сбит с толку, обнаружив, что для программ Mac не существует процесса установки ... вы просто загружаете их, открываете DMG, скопируйте файл и вуаля.

Это смущает меня до бесконечности.

Может кто-нибудь объяснить на техническом уровне, в чем разница? Как может быть возможно, что нет необходимости выполнять процесс установки?

И если такое возможно, то почему не все операционки так работают?

Стоит отметить, что простое перетаскивание *.app папки на локальный диск может вызвать действия с файлами. Кроме того, nnn.appэто папка , а не файл. Как работают приложения Mac, довольно сложно.
Я просто хотел бы отметить, что установщики Windows делают некоторые вещи, помимо простого копирования файлов и установки ярлыков. Один из них — создать точку восстановления, чтобы систему можно было восстановить в исходное состояние, если что-то пойдет не так. Другой для обновления реестра с помощью процесса удаления. Поскольку приложения для Windows не связаны, как приложения для OS X, последний процесс определенно необходим.

Ответы (3)

Мы, пользователи Mac, задаем тот же вопрос по-другому: зачем вам (не)инсталлятор для всего в Windows?

Большинство программ для Mac представляют собой полные пакеты — все их ресурсы находятся в папке приложения (щелкните правой кнопкой мыши значок приложения -> Показать содержимое пакета). Так что они будут запускаться откуда угодно, есть системная переменная, которая сообщает коду, где он находится. Часто приложение можно запустить прямо из загруженного DMG и даже с удаленного сервера. Немного производительности хит, но это будет работать. Пользовательские настройки находятся в пользовательской библиотеке, также есть системные подпрограммы для обработки механики.

У Mac нет центрального реестра, который требует настройки (или обслуживания), поэтому туда тоже ничего не нужно.

Если вы разрабатываете приложения для Mac, вам следует очень постараться, чтобы не нуждаться в установщике - только если вы устанавливаете общие библиотеки или службы на уровне оболочки. В общем, можно обойтись без.

Поскольку вы направляетесь к программированию для iOS, я бы посоветовал просто не беспокоиться об этом. Правила iOS скажут вам, где что сохранять, и это НЕ подлежит обсуждению. Здесь идут настройки, там пользовательские данные. Вы будете использовать предоставленные API. Исполнять. Подчиниться.

Ни одно приложение не может думать иначе?
С другой стороны, если приложение, которое входит в комплект (.app), добавляет файлы в систему (например, в /Library, другие места), регистрирует службы, панели настроек и т. д., простое «удаление .app» не работает. не очистить его, и действительно, ничто не очищает его, хотя есть другие приложения, которые удаляют (или, по крайней мере, заявляют об этом) артефакты из отсутствующих приложений.
Можете ли вы объяснить, как это имеет смысл? Многие приложения должны распознаваться как обработчики определенных файлов. Это невозможно сделать только с помощью процесса извлечения файла; приложение должно где-то зарегистрироваться, возможно, это эквивалентно реестру Windows. Как приложению не нужен установщик.

На самом деле в OS X есть много вещей, которые нужно «установить».

Обычно «установленные» приложения представляют собой пакеты, содержащие определенные инструкции. Проще говоря, пакет запускает скрипт и сообщает системе создавать/перемещать файлы в разные части ОС. Это необходимо для таких программ, как пакет Adobe CS или Microsoft Office.

Другой тип приложений — это своего рода «автономные приложения», в которых вам нужен только один исполняемый файл. Этот файл при открытии создает свои зависимости, файлы настроек и тому подобное.

Во многих случаях установщик Windows не делает ничего, кроме извлечения сжатых файлов и их записи в место назначения.

Затем он создает несколько ярлыков и может зарегистрироваться для открытия файлов с определенными расширениями.

Нет ничего волшебного в установке программного обеспечения в Windows, и для большей части программного обеспечения Windows вы можете взять каталог установленного программного обеспечения, скопировать его непосредственно на другой компьютер и запустить его там, не выполняя (пере)установку.

Таким образом, это в основном разница между пользовательскими интерфейсами (кто отвечает за копирование файлов), а не разница между тем, что происходит на самом деле.