Чому ми встановлюємо програмне забезпечення за допомогою файлів `.dmg`?


28

Коли я хочу встановити програмне забезпечення, я зазвичай завантажую файл .dmg(Disk iMaGe). Коли я його відкриваю, цей .dmgфайл виглядає так, як я б назвав "віртуальний диск" (звідси його ім'я я припускаю) і вказаний у Finderпункті нижче devices. Він також вказаний у Disk Utilityрозділі під, Disk Imagesі здається, що його можна стерти чи відключити, як і будь-який інший диск.

  • Яка логіка, за якою програмне забезпечення потрібно встановити на такому «віртуальному диску»?
  • Чому він не є простим бінарним файлом або я не знаю, що?

12
Установка програмного забезпечення завжди може привести до d м а г е.
десерт

1
Простий двійковий файл буде інсталятором. За допомогою DMG ви просто копіюєте програму, не запускаючи інсталятор.
Thorbjørn Ravn Andersen

10
Більшість додатків Mac виглядають як окремі файли, але насправді це "пакети програм", в основному папки з багатьма файлами всередині. Finder відображає його як єдине ціле, але ви можете клацнути правою кнопкою миші на них та вибрати "Відкрити вміст", щоб оглянути файли всередині. Отже, "простий бінарний" не буде працювати.
el.pescado


Останній абзац має бути окремим запитанням, оскільки він породжує окремі відповіді
user151019

Відповіді:


34

У DMG є кілька ключових особливостей, завдяки яким вони перевершують звичайні старі блискавки

  • Вони є повноцінною файловою системою (тобто вони можуть зберігати дозволи файлів, мати власні фони папок тощо)
  • Вони підтримують "обов'язкові" EULAs перед монтажем, що підходить для юридичних речей
  • Забезпечте більш надійне середовище виконання. Якщо вам потрібно виконати абсолютний шлях для встановлення (який не слід), ви можете підготувати DMG, позначити його як лише для читання і використовувати його для встановлення

Дійсно ключовою особливістю є те, що вони підтримують повну файлову систему HFS +. Zip (зазвичай, версії Linux іноді підтримують дозволи) є дурним і підтримує лише згрупування файлів і папок і нічого іншого. Ніяких метаданих, лише файли.


14
Додаткові пункти: починаючи з 10.12, .dmg файли можуть бути підписані кодом для цілісності (.zip файли можуть містити підписаний код, але самі не можуть бути підписані таким чином, що переживе завантаження). Крім того, опція "простого двійкового" взагалі не працює, оскільки більшість програмного забезпечення macOS поставляються як пакети - папки зі складною (прихованою) внутрішньою структурою - а не звичайні файли.
Гордон Девіссон

9
"Zip дурний і підтримує лише ..." - я не згоден з цією оцінкою. Тільки тому, що щось просто не означає, що це дурно. Простота - це чеснота, і рідко є (часто невидимим) файлом метадані будь-якого значення в розподіленому інсталяторі.
Дай

14
@Dai він означає дурний, як у німого; програма не знає, що робить - не те, що вона марна.
Тім

3
Я вважаю, що ZIP - це не надто хороше порівняння. Чому б, наприклад, стислий TAR, як tar.gz? Він зберігає дозволи.
Руслан

2
@Dai, "рідко є (часто невидимими) файли метадані будь-якого значення в розподіленому інсталяторі" - правда на багатьох інших платформах, але Apple має довгу історію зберігання критичного вмісту (тобто іконок!) У "ресурсних вилках" ( в ці дні, xattrs).
Чарльз Даффі

3

Програмне забезпечення для Mac може поставлятися як пакет .appпрограм (по суті, папка, що містить усі програмні ресурси), або як .pkgінсталятор - програма, яка встановлює програми аналогічно Windows.

Доступні лише інструменти командного рядка як звичайні бінарні файли, які потім будуть скопійовані кудись у користувач, PATHнаприклад /usr/local/bin.

Вони можуть бути упаковані у образ диска OS X / macOS ( .dmg) або традиційний архівний формат, такий як .zipабо .tar.


Яка логіка, за якою програмне забезпечення потрібно встановити на такому «віртуальному диску»?

Це багато в чому залежить від розробника. A .dmg- це лише віртуальний жорсткий диск, а не інсталятор. Вибір для використання - .dmgце пакування, а не установка.

Якщо додаток є простим .appпакетом, він міститься самостійно і його можна запустити, двічі клацнувши його. Її зазвичай копіюють /Applicationsдля зручності.

Окрім шифрування та EULAs при відкритті, перевагою .dmgнад типом архіву є брендування. .dmgs можуть бути надані власні піктограми, власні фонові зображення та макет вмісту можна виправити. .dmgs зазвичай також читаються лише тому вміст залишатиметься точно так, як його задумав розробник.

Вони також змушують користувача вибирати, де вони хотіли б додаток; коли ви розпаковуєте архів, вміст, як правило, буде вилучено туди, де архів знаходився. На противагу цьому, .dmgs буде монтуватися у файловій системі, і тоді .appпакет повинен бути явно скопійований.


Чому він не є простим бінарним файлом або я не знаю, що?

Додаток для Mac - це більше, ніж просто двійковий. На додаток до двійкового (розміщеного в <appname>.app/Contents/MacOS/) .appвходить ряд ресурсів в <appname>.app/Contents/Resources/. Ці ресурси включають піктограми, графіку та файли локалізації, такі як en.lproj.


2

Чи є інше використання для .dmg файлів, крім встановлення програмного забезпечення?

Ще одна корисна особливість щодо DMG (оскільки ви запитували про інші види використання) - це можливість створювати зашифрований простір для зберігання та зберігати файли у цьому захищеному просторі. Корисно, якщо ви хочете захистити деякі файли, але не зашифрувати весь ваш основний жорсткий диск.

Див. Програму Disk Utility для macOS Sierra: Створіть образ диска за допомогою Disk Utility для отримання додаткової інформації про створення зашифрованих файлів .dmg.


Однак шифрування вже можна здійснити без необхідності .dmg. Unix не шифрує?
Pacerier

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