Еквіваленти файлам '.msi' та 'setup.exe' у Debian чи Ubuntu?


15

Ця відповідь пояснює .msiта setup.exeфайли для встановлення програми у Windows.

Чи є еквіваленти файлам .msiі в setup.exeфайлах Debian або Ubuntu? Do .debфайли пакета відповідають .msiабо setup.exeабо що - то інше?


8
Я не знаю, чому ви це запитуєте, тому я скажу це як загальний коментар для тих, хто стикається з цим питанням. Хоча існують способи встановлення програмного забезпечення «вручну», більшість дистрибутивів Linux (і настійно рекомендується) бажано встановити програмне забезпечення через менеджер пакетів. Таким чином, ви автоматично отримуєте оновлення безпеки та робиться певний рівень тестування для забезпечення сумісності з дистрибутивом. Якщо вам потрібна остання та найкраща версія програмного забезпечення, яке не доступне в основних репозиціях, використовуйте репо-версію спільноти (наприклад, PPA в Ubuntu), але завжди використовуйте менеджер пакунків.
Мюзер

У .setupWindows немає файлів, ви маєте на увазі, setup.exeяке типове ім'я для інсталятора?
gronostaj

Перегляньте сторінку apt-getчоловіка та документи, звідси пов’язані. Навіть не існує еквіваленту для Windows apt-get install, не кажучи вже про будь-які інші речі, які він може зробити.
jthill

5
@jthill, це неправда. Це не так повноцінно або настільки популярно, як apt-getостанні, але останні (версії Win7 і вище) Powershell, OneGetчерез які можна встановити Chocolatey(еквівалент Homebrewна Mac). Вони можуть бути менш популярними, ніж їх nix еквіваленти, але сказати, що в Windows немає еквівалента , явно невірно.
фліт

1
@Tim: на це запитання неможливо відповісти розумно, не уточнивши, що саме ви маєте на увазі під "еквівалентом". Які конкретні властивості .msiфайлів та інсталяторів вас цікавлять? Які точні критерії визначають, чи є щось "еквівалентне" чи ні? Наприклад: інсталятори - це просто програми, як і будь-яка інша програма. Про програму з назвою абсолютно нічого особливого немає setup.exe. Оскільки setup.exeце просто програма, як і будь-яка інша програма, а Debian, безумовно , має поняття "програма", чи вважаєте ви цей еквівалент? Якщо ні, то чому б і ні?
Йорг W Міттаг

Відповіді:


28

Можливо, ближче до інсталятора MSI, ніж до setup.exe, .debпакет включає дерево файлів для копіювання у файлову систему, а також колекцію гаків до і після встановлення, які потрібно запустити (серед іншого). Гачки можуть ефективно робити що-небудь у системі, включаючи те, що я не думаю, що я бачив у Windows: додавання користувачів для системної послуги. Одне, що вони не можуть зробити, це встановити інший .debпакет - база даних блокується під час встановлення, тому цього можна досягти лише через залежність. Встановлення .debпакета виробляє записи в центральній базі даних встановлених пакетів для зручності обслуговування.

ttf-mscorefontsПакет цікавий тим , що сам пакет містить тільки скрипт для завантаження і установки шрифтів. Цей сценарій виконується в одному з цих гаків.

Ближче setup.exeможе бути завантаження вихідного коду progam з домашньої сторінки проекту, запущений ./configure && make && sudo make installабо будь-який інший метод, який автори вирішили використовувати. Оскільки цей метод не додає пакет до бази даних встановлених програм, видалити його пізніше може бути набагато складніше.

Ще одна відмінність полягає в тому, що a .debзадає його залежності, тому належна установка може бути гарантована. Наскільки мені відомо, у світі Windows MSI не може спричинити встановлення іншого MSI, тому setup.exeзазвичай використовується для такого типу відстеження залежності. У кількох коментарях зазначається, що MSI можуть називати залежності, але оскільки не існує центральної бази даних MSI, як для .debпакетів, відсутність залежності просто спричинить збій у встановленні.

Таким чином, a .debє свого роду між між установкою MSI та a setup.exe. Пакет може робити все, що завгодно, під час гачок перед і після встановлення, може називати та зазвичай знаходити власні залежності, а також залишає запис про його встановлення в центральному місці для зручності обслуговування.


2
У Windows setup.exeінсталятори -style також інтегруються в систему відстежуваного інсталятора (із видаленням тощо). І з MSI, і з .exeустановниками, залежність обробляється шляхом вбудовування залежності в інсталятор ( наприклад, перерозподільний інсталятор VC або інсталятора DirectX) та встановлення DLL-залежностей поряд з виконуваним файлом (або як системні збори). Так setup.exeсамо схоже на .deb. Еквівалент будівництву з джерела - це також будівництво з джерела в Windows ;-).
Стівен Кітт

Я робити не одну річ , яка робить MSIS ближче до політики Debian , ніж установки виконуваних файлів: MSI не може встановити інший MSI, так само , як пакет Debian не може встановити інший пакет ( за винятком з допомогою своїх залежностей).
Стівен Кітт

@StephenKitt: Інсталятори setup.exeстилю ні в якому разі не відслідковуються ОС, якщо вони не запускають MSI під ними (і тоді MSI відстежуються). Те, що у них є ключ для видалення реєстру, не має жодного стосунку до цього. Це як би сказати, що кожен файл відслідковується, оскільки він вказаний у файловій системі.
користувач541686

2
MSI може і часто (у більших продуктах) мати залежності, хоча, враховуючи, що немає центрального сховища .MSI, зазвичай те, що відбувається, коли ви пропускаєте залежність, це те, що вони відмовляються встановлювати.
Маттео Італія

1
"те, що я не думаю, що я бачив у Windows: додавання користувачів для системної послуги". Я досить впевнений, що це роблять інсталятори SQL Server, IIS та Visual Studio. Але це може бути менш очевидним, оскільки модель користувачів Windows дещо вдосконалена, що модель за замовчуванням Unix / Linux (або ти root, чи ти не є) ..
MSalters

15

Однофайлові двійкові інсталятори, які я бачив у 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що також самостійно витягує до темп-папки і запускає звідти реального інсталятора.


6

Взято з: /ubuntu/13415/what-are-run-files/13416#13416

Файл .run, як правило, програма на замовлення, яку потрібно виконати, щоб встановити програму. вони, як правило, не підтримуються, оскільки вони не відстежують, куди йдуть файли, і зазвичай не надають метод видалення. немає жодного способу бути впевненим, що буде робити сценарій у вашій системі, щоб вони вважалися небезпечними.

Вони наближаються до файлу Windows EXE, і вони мають такі самі проблеми.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.