Tại sao chúng ta cài đặt phần mềm qua các tệp `.dmg`?


28

Khi tôi muốn cài đặt phần mềm, tôi thường tải xuống tệp .dmg(Đĩa iMaGe). Khi tôi mở nó, .dmgtập tin này trông giống như cái mà tôi sẽ gọi là "đĩa ảo" (do đó tên của nó tôi đoán) và được liệt kê Finderbên dưới devices. Nó cũng được liệt kê Disk Utilitybên dưới Disk Imagesvà có vẻ như nó có thể bị xóa hoặc không được đếm giống như bất kỳ đĩa nào khác.

  • Logic cho phần mềm nào cần được cài đặt với một "đĩa ảo" như vậy là gì?
  • Tại sao nó không đến như một tệp nhị phân đơn giản hoặc tôi không biết gì?

12
Cài đặt phần mềm luôn có thể gây ra d a m a g e.
tráng miệng

1
Một tệp nhị phân đơn giản sẽ là một trình cài đặt. Với DMG, bạn chỉ cần sao chép ứng dụng mà không cần chạy trình cài đặt.
Thorbjørn Ravn Andersen

10
Hầu hết các ứng dụng Mac trông giống như các tệp đơn lẻ, nhưng trong thực tế là "gói ứng dụng", về cơ bản là thư mục chứa nhiều tệp bên trong. Trình tìm kiếm hiển thị dưới dạng một thực thể, nhưng bạn có thể nhấp chuột phải vào chúng và chọn "Mở nội dung" để kiểm tra các tệp bên trong. Vì vậy, "nhị phân đơn giản" sẽ không hoạt động.
el.pescado


Đoạn cuối phải là một câu hỏi riêng vì nó đang đưa ra các câu trả lời riêng biệt
user151019

Câu trả lời:


34

DMG có một vài tính năng chính làm cho chúng vượt trội hơn so với khóa cũ đơn giản

  • Chúng là một hệ thống tệp đầy đủ (có nghĩa là chúng có thể lưu trữ quyền truy cập tệp, có nền thư mục tùy chỉnh, v.v.)
  • Họ hỗ trợ các EULAs bắt buộc trước khi gắn kết, điều này rất tốt cho những thứ hợp pháp
  • Cung cấp một môi trường thực thi đáng tin cậy hơn. Nếu bạn phải thực hiện công cụ đường dẫn tuyệt đối để cài đặt (mà bạn không nên), bạn có thể chuẩn bị DMG, đánh dấu nó là chỉ đọc và sử dụng nó để cài đặt

Thực sự tính năng chính là chúng hỗ trợ hệ thống tập tin HFS + đầy đủ. Zip (thông thường, các phiên bản Linux đôi khi hỗ trợ quyền) là ngu ngốc và chỉ hỗ trợ gói tệp và thư mục và không có gì khác. Không có siêu dữ liệu, chỉ là các tập tin.


14
Điểm bổ sung: bắt đầu từ 10.12, các tệp .dmg có thể được ký mã cho tính toàn vẹn (các tệp .zip có thể chứa mã đã ký, nhưng bản thân chúng không thể được ký theo cách tồn tại khi tải xuống). Ngoài ra, tùy chọn "nhị phân đơn giản" hoàn toàn không hoạt động, bởi vì hầu hết các phần mềm macOS đều có các gói - các thư mục có cấu trúc bên trong (ẩn) phức tạp - thay vì các tệp đơn giản.
Gordon Davisson

9
"Zip là ngu ngốc và chỉ hỗ trợ ..." - Tôi không đồng ý với đánh giá đó. Chỉ vì một cái gì đó đơn giản không có nghĩa là nó ngu ngốc. Đơn giản là một ưu điểm và hiếm khi (thường là vô hình) siêu dữ liệu của bất kỳ giá trị nào trong trình cài đặt phân tán.
Đại

14
@Dai anh có nghĩa là ngu ngốc như trong câm; chương trình không biết nó đang làm gì - không phải là nó vô dụng.
Tim

3
Tôi cho rằng ZIP không quá nhiều so sánh tốt. Tại sao không nén TAR như thế tar.gznào? Nó không lưu trữ quyền.
Ruslan

2
@Dai, "hiếm khi (thường là vô hình) siêu dữ liệu của bất kỳ giá trị nào trong trình cài đặt phân tán" - đúng trên nhiều nền tảng khác, nhưng Apple có lịch sử lưu trữ nội dung quan trọng (ví dụ: biểu tượng!) Trong "forks resource" ( những ngày này, xattrs).
Charles Duffy

3

Phần mềm Mac có thể được phân phối dưới dạng .appgói ứng dụng (về cơ bản là một thư mục chứa tất cả tài nguyên chương trình) hoặc dưới dạng trình .pkgcài đặt là chương trình cài đặt các ứng dụng theo cách tương tự như Windows.

Chỉ các công cụ dòng lệnh có sẵn dưới dạng nhị phân đơn giản mà sau đó sẽ được sao chép vào một nơi nào đó trong người dùng PATHnhư /usr/local/bin.

Chúng có thể được đóng gói trong ảnh đĩa OS X / macOS ( .dmg) hoặc định dạng lưu trữ truyền thống như .ziphoặc .tar.


Logic cho phần mềm nào cần được cài đặt với một "đĩa ảo" như vậy là gì?

Điều này phần lớn phụ thuộc vào nhà phát triển. A .dmgchỉ là một ổ cứng ảo không phải là trình cài đặt. Sự lựa chọn để sử dụng một .dmglà về bao bì hơn là cài đặt.

Nếu một ứng dụng là một .appgói đơn giản, nó là độc lập và có thể được chạy bằng cách nhấp đúp vào nó. Nó thường được sao chép để /Applicationsthuận tiện.

Ngoài mã hóa và EULAs khi mở, lợi ích của .dmgloại lưu trữ là xây dựng thương hiệu. .dmgs có thể được cung cấp các biểu tượng tùy chỉnh, hình nền tùy chỉnh và bố cục của nội dung có thể được sửa. .dmgs thường chỉ được đọc để nội dung sẽ vẫn chính xác như nhà phát triển dự định.

Họ cũng buộc người dùng chọn nơi họ muốn có một ứng dụng; khi bạn giải nén một kho lưu trữ, nội dung thường sẽ được trích xuất đến bất cứ nơi nào lưu trữ được đặt. Ngược lại, .dmgs sẽ gắn kết trong hệ thống tập tin và sau đó .appgói phải được sao chép rõ ràng.


Tại sao nó không đến như một tệp nhị phân đơn giản hoặc tôi không biết gì?

Một ứng dụng Mac không chỉ là một hệ nhị phân. Ngoài nhị phân (nằm ở <appname>.app/Contents/MacOS/), .appbao gồm một số tài nguyên trong <appname>.app/Contents/Resources/. Những tài nguyên này bao gồm các biểu tượng, đồ họa và các tệp bản địa hóa như en.lproj.


2

Có cách sử dụng nào khác cho các tệp .dmg ngoài cài đặt Phần mềm không?

Một tính năng hữu ích khác về DMG (vì bạn đã hỏi về các mục đích sử dụng khác) là khả năng tạo một không gian lưu trữ được mã hóa và lưu trữ các tệp trong không gian được bảo vệ đó. Hữu ích nếu bạn muốn bảo vệ một số tệp, nhưng không mã hóa toàn bộ đĩa cứng chính của bạn.

Xem Disk Utility cho macOS Sierra: Tạo hình ảnh đĩa bằng Disk Utility để biết thêm thông tin về cách tạo tệp .dmg được mã hóa.


Mã hóa tuy nhiên đã có thể thực hiện được mà không cần .dmg. Không mã hóa Unix?
Pacerier

@ Pacerier - ồ chắc chắn - như mọi thứ với Linux / Unix, có nhiều hơn một cách để làm một cái gì đó.
Ken
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.