Так работают установщики программного обеспечения в Windows, MacOS и Linux

Современные операционные системы предоставляют вам простые способы настройки новых приложений. К ним относятся пакеты автоматической установки, а также команды, которые устанавливают много программных компонентов одновременно. Но что на самом деле происходит, когда вы запускаете этот установщик или запускаете эту команду?

Давайте посмотрим, как программное обеспечение устанавливается на трех основных настольных платформах: Windows, macOS и Linux.

Методы установки программного обеспечения

Есть несколько разных способов запуска новых приложений на вашем компьютере. В порядке возрастания сложности они включают в себя:

  • Компиляция программного обеспечения — Сборка приложения из его исходного кода. Только для самых технических пользователей.
  • Архивы программного обеспечения — Распаковка архивов, таких как ZIP-файлы, и запуск программы из любого места, где вы ее распаковали. Это может потребовать дополнительной настройки.
  • Установочные пакеты — Поиск установочного файла и (двойной) щелчок, чтобы начать установку.
  • Менеджеры / Магазины программного обеспечения — Выбрав приложение из приятного интерфейса и нажав большую кнопку «Установить». Это магия!

В этой статье мы рассмотрим пакеты установщика, так как большинство менеджеров / магазинов программного обеспечения в конечном итоге имеют дело с этими типами пакетов за кулисами. Для сегодняшних основных настольных платформ — Windows, macOS и Linux — мы рассмотрим, что составляет один из этих пакетов и что происходит при их установке.

Майкрософт Виндоус

Пакеты установщика, которые вы можете встретить для Windows, входят в один из двух основных вариантов. Исполняемые файлы (EXE) могут настроить вашу программу, выполнив тяжелую работу по размещению файлов в нужном месте и выполнению обновлений реестра Windows. Пакеты установщика Windows (MSI) дополняют это, предоставляя стандартные службы, такие как деинсталляции.

Вы можете проверить содержимое файлов EXE или MSI, открыв архив с 7-Zip

, Если вы воспользуетесь им для просмотра собственного установщика EXE 7-Zip, вы найдете несколько различных файлов в:

пакет программного обеспечения для анатомии 7zip

Хотя эти файлы не содержат папки, содержащейся в установщике, разработчик будет указывать каждый из них на целевой каталог. Большинство из них попадают в «место установки по умолчанию» — то же самое предложение, которое вы обычно видите для папки типа «C: \ Program Files \ [имя программы]» или «C: \ Program Files (x86) \ [ваше новое приложение». ] «.

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

Анатомия программного пакета installshield реестра

С InstallShield файлы приложения и другие настройки упаковываются в setup.exe файл. Открытие его с помощью 7-Zip покажет, что внутри находится пакет MSI, который при запуске выглядит точно так же, как и все, к чему мы все привыкли. Давайте рассмотрим, что происходит во время этого процесса.

пакет программного обеспечения анатомии installshield install

Процесс установки Windows

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

  1. Установщик может содержать другие архивы, такие как MSI или форматы, подобные CAB. В качестве первого шага установщик извлечет их во временную папку.
  2. Затем он проверит, что все установленные зависимости доступны. Если чего-то не хватает, он загрузит его, если это возможно, или выйдет из установщика с ошибкой, если нет.
  3. Если требуются какие-либо зависимости, они будут установлены в первую очередь с использованием того установщика, с которым они поставляются (когда-нибудь прервалась установка для .NET Framework?

    ).

  4. Затем установщик начнет копировать файлы приложения и помещать их в правильное расположение.
  5. Если разработчик настроил какие-либо ярлыки, установщик создаст и укажет им фактический путь установки (помните, вы можете изменить это

    когда установщик запущен).

  6. Изменения в реестре Windows

    , если таковые имеются, будут выполнены.

  7. Наконец, установщик может предложить пользователю ввести такую ​​информацию, как имя или адрес веб-сайта.

Этот процесс может показаться сложным по сравнению со следующей операционной системой в списке. Давайте посмотрим на установку программного обеспечения на MacOS.

Apple MacOS

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

, Иногда загрузка даже дает вам значок «Перетащите сюда!».

Давайте погрузимся в комплект приложения, а также его аналог установщика PKG.

Структура пакета macOS

APP файл на поверхности является на самом деле проще, чем Windows по двум основным причинам. Во-первых, это стандартная папка. Разница лишь в том, что он заканчивается суффиксом «.APP». Если вы загрузите один из них в Windows, вы увидите, что он отображается так же, как и любая другая папка в Проводнике. Во-вторых, файлы APP требуют, чтобы было включено абсолютно все, что требуется программе. Не стоит беспокоиться об отсутствии зависимостей с этими типами установщиков.

Эти пакеты должны содержать три вещи в папке «Contents»: 1) файл «Info.plist», который содержит метаданные приложения, такие как имя, язык, номер версии и т. Д .; 2) каталог «MacOS», содержащий основной исполняемый файл; и 3) каталог «Ресурсы», в котором хранятся ресурсы, необходимые для работы приложения (например, значок приложения). Существуют и другие дополнительные папки, такие как «Frameworks» (наборы функций, которые не являются специфичными для приложения), «Plug-Ins» (функциональные возможности для приложения, которое не требуется для его запуска) и «SharedSupport» (посторонние данные, такие как шаблоны).

папки приложений Mac

Напротив, формат PKG представляет собой комбинацию Windows-подобного установщика с Unix-подобной структурой

, Приложение 7-Zip также откроет файл PKG, который сжимается в XAR формат. Внутри один или несколько полезная нагрузка файлы, который также является архивом. Чтобы извлечь его содержимое, используйте следующую цепочку команд (CPIO это формат архива, а также программа для управления ими) в Mac или Linux Terminal:

cat Payload | gunzip -dc | cpio -i

После этого вы увидите знакомое Unix-подобное дерево каталогов.

В приведенном ниже примере я использовал конвертер документов Pandoc. Это включает в себя двоичный файл в / USR / местные / бен и некоторая документация в / USR / местные / доли / человек. Как эти вещи на самом деле становятся на место? Мы рассмотрим, как каждый из них на самом деле устанавливается на ваш Mac.

структура mac pkg

Я использовал версию 7-Zip для Windows, чтобы проиллюстрировать это, а не версию для Linux только из командной строки.

Процесс установки приложения MacOS

Когда вы помещаете этот файл APP в папку «Приложения», это не сильно меняет все. Помните, что все необходимое для запуска программы является автономным. Единственное отличие от стандартного перетаскивания заключается в том, что файл «Info.plist» регистрируется в системе.

копия приложения Mac

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

Mac приложение установлено

Процесс установки macOS PKG

Открытие файла PKG, с другой стороны, запускает установщик в стиле «мастера». Для простых программ это обычно установщик компонентов, который обычно проходит следующие шаги:

  1. Запустить предустанавливать скрипт.
  2. Распакуйте содержимое «полезной нагрузки» на машину.
  3. Запустить постустановочных скрипт.

Mac PKG установить

Затем разработчики могут объединить несколько компонентов в один архив продукции установить. Это добавляет опции, такие как отображение EULA для пользователя, чтобы принять, сбор информации от пользователя и выбор компонентов для установки. Между тем, установщик Apple позаботится обо всех деталях установки необходимых компонентов в фоновом режиме.

Говоря об установщиках на основе Unix, мы перейдем к двум ведущим форматам пакетов Linux в следующем разделе.

Ubuntu и Fedora Linux

Ах, DEB против RPM

, Одна из великих огненных войн, одолеваемая только такими VI против Emacs или KDE против GNOME. Все же эти форматы больше похожи, чем они отличаются. Давайте взглянем.

Файловая структура пакета Linux

Чтобы взглянуть внутрь файла DEB, вы можете попробовать менеджер архива с графическим интерфейсом. В противном случае используйте Арканзас команда. Следующая команда введена в терминал

извлечет содержимое пакета Debian:

ar -x name-of-your-package.deb

Из этого получится три файла:

  • control.tar.gz — Это, в свою очередь, содержит один основной файл, контроль, который содержит метаданные о пакете, такие как его официальное имя, версия и зависимости. Он также может содержать другие файлы, такие как сценарии для запуска во время процесса установки или файлы конфигурации по умолчанию.
  • data.tar.gz — Файлы, из которых состоит само приложение, находятся в этом архиве TAR.GZ. Все, включая двоичные файлы, документацию и стандартные конфигурации находятся здесь. В примере пакета kde-service-menu-encfs_0.5.2_all.deb он содержит файлы и каталоги, как показано на рисунке ниже.
  • Debian-бинарный — Это файл, который определяет, какую версию формата пакета Debian использует файл. Для современных дистрибутивов это будет просто содержать «2.0» в одной строке.

основной контроль деба

В Fedora вы можете использовать rpm2cpio а также CPIO Команды для извлечения пакета RPM и просмотра их файлов:

rpm2cpio name-of-your-package.rpm | cpio -idvm

Для пакета kde-cli-tools-5.9.4-2.fc26.x86_64.rpm вы увидите дерево файлов, похожее на пакет DEB. Но он не предоставляет метаданные, по крайней мере, не в двоичный пакет. Вам нужно будет загрузить исходный RPM (.SRC.RPM), соответствующий вашей двоичной версии, а затем использовать ту же команду, указанную выше для этого файла. В него будет включен файл SPEC, содержащий множество элементов контроль файл в пакете Debian.

Теперь, когда у нас есть понимание структуры пакетов Linux, давайте рассмотрим, что происходит, когда вы их фактически устанавливаете

,

Установка пакета Linux

Когда вы устанавливаете пакеты любого формата, независимо от внешнего интерфейса, происходит аналогичный набор шагов:

  1. Система пакетов проверяет содержимое пакета, чтобы определить, отсутствуют ли зависимости. В зависимости от инструмента, он либо предупредит вас, либо установит их загрузку.
  2. Если пакеты содержат предустановочные сценарии или команды, они запускаются следующим.
  3. Затем система пакетов фактически извлекает файлы пакета.
  4. После установки файлов запускаются сценарии после установки.
  5. Наконец, пакет регистрируется во внутренней базе данных с использованием его метаданных, поэтому его можно удалить позже.

Знать, как устанавливается программное обеспечение — это хорошо

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

Сколько из указанных выше методов установки программного обеспечения вы сделали? Вы предпочитаете DEB или RPM? Или пакеты Mac для приложений представляют собой вершину простоты использования? Когда-нибудь случалось устанавливать кошмар? Дайте нам знать в комментариях ниже!

Ссылка на основную публикацию
Adblock
detector