
Этот ответобъясняет .msi
и setup.exe
файлы для установки приложения в Windows.
Есть ли эквиваленты .msi
и setup.exe
файлам в Debian или Ubuntu? .deb
Соответствуют ли файлы пакетов .msi
или setup.exe
или чему-то другому?
решение1
Вероятно, более близкий к установщику MSI, чем к setup.exe
, .deb
пакет включает дерево файлов для копирования в файловую систему, а также набор пред- и пост-установочных хуков для запуска (помимо прочего). Хуки могут эффективно делать что угодно в системе, включая то, что я не думаю, что когда-либо видел в Windows: добавление пользователей для системной службы. Единственное, чего они не могут сделать, это установить другой .deb
пакет — база данных заблокирована во время установки, поэтому это можно сделать только через зависимости. Установка пакета .deb
затем создает записи в центральной базе данных установленных пакетов для простоты обслуживания.
Пакет ttf-mscorefonts
интересен тем, что сам пакет содержит только скрипт для загрузки и установки шрифтов. Этот скрипт выполняется в одном из таких хуков.
Ближе всего setup.exe
может быть загрузка исходного кода программы с домашней страницы проекта, а затем запуск ./configure && make && sudo make install
или любой другой метод, который решили использовать авторы. Поскольку этот метод не добавляет пакет в базу данных установленных программ, его последующее удаление может быть намного сложнее.
Другое отличие заключается в том, что a .deb
указывает свои зависимости, поэтому правильная установка может быть гарантирована. Насколько мне известно, в мире Windows MSI не может вызвать установку другого MSI, поэтому setup.exe
обычно используется для такого рода отслеживания зависимостей. В нескольких комментариях отмечается, что MSI могут называть зависимости, но поскольку нет центральной базы данных MSI, как для .deb
пакетов, отсутствие зависимости просто приведет к сбою установки.
Таким образом, a .deb
— это что-то среднее между установщиком MSI и setup.exe
. Пакет может делать все, что захочет, во время своих предустановочных и послеустановочных хуков, может называть и, как правило, находить свои собственные зависимости, а также оставляет запись о своей установке в центральном месте для простоты обслуживания.
решение2
Однофайловые двоичные установщики, которые я видел в Linux, представляли собой .sh
файлы, содержащие скрипт оболочки, объединенный с двоичным двоичным объектом, например:
#!/bin/bash
tmpdir=$(mktemp -d /tmp/installer.XXX)
tail -n +6 "$0" | tar -xJf - -C "$tmpdir" || exit 1
sudo "$tmpdir/setup.sh"
rm -rf "$tmpdir"
exit
[binary content follows]
По сути, это эквивалентно , setup.exe
который также самораспаковывается во временную папку и запускает настоящий установщик оттуда.
решение3
Взято из:https://askubuntu.com/questions/13415/what-are-run-files/13416#13416
Файл .run обычно представляет собой специально созданную программу, которую необходимо запустить для установки программы. Обычно они не поддерживаются, поскольку не отслеживают, куда перемещаются файлы, и обычно не предоставляют метода удаления. Невозможно быть уверенным в том, что скрипт сделает с вашей системой, поэтому они считаются небезопасными.
Они близки к исполняемому файлу Windows и, следовательно, имеют те же проблемы.