Объяснение технологий

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

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

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

Разблокируйте «Шпаргалку по основным командам 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, который при запуске выглядит так же, как установка, к которой мы все привыкли. Давайте рассмотрим, что происходит во время этого процесса.

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

Процесс установки 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:

cat Payload | gunzip -dc | cpio -i 

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

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

структура mac pkg

Для иллюстрации этого я использовал версию 7-Zip для Windows, а не версию для Linux только из командной строки.

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

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

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

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

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

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

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

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

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

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

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

Ubuntu и Fedora Linux

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

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

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

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

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

  • control.tar.gz — он, в свою очередь, содержит один основной файл, Control , который содержит метаданные о пакете, такие как его официальное имя, версия и зависимости. Он также может содержать другие файлы, такие как сценарии для запуска в процессе установки или файлы конфигурации по умолчанию.
  • data.tar.gz — файлы, из которых состоит само приложение, находятся в этом архиве TAR.GZ. Все, включая двоичные файлы, документацию и стандартные конфигурации находятся здесь. В примере пакета kde-service-menu-encfs_0.5.2_all.deb он содержит файлы и каталоги, как показано на рисунке ниже.
  • debian-binary — это файл, который определяет, какую версию формата пакета 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, содержащий много элементов, аналогичных файлу Control в пакете Debian.

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

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

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

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

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

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

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

Похожие посты
Объяснение технологий

Как работает жесткий диск? [Технология объяснила]

Объяснение технологий

Что такое программное обеспечение с открытым исходным кодом? [MakeUseOf Объясняет]

Объяснение технологий

Разрешения графического дисплея - что означают цифры? [MakeUseOf Объясняет]

Объяснение технологий

Как переформатировать внешний жесткий диск, не теряя на нем все