Tương đương với các tệp '.msi' và 'setup.exe' trong Debian hoặc Ubuntu?


15

Câu trả lời này giải thích .msisetup.execác tệp để cài đặt một ứng dụng trên Windows.

Có tương đương .msivà với setup.execác tệp trong Debian hoặc Ubuntu không? Đỗ .debfile gói tương ứng với .msihay setup.exehay cái gì khác?


8
Tôi không biết tại sao bạn lại hỏi điều này, vì vậy tôi sẽ nói đây là một nhận xét chung cho bất kỳ ai gặp phải câu hỏi này. Mặc dù có nhiều cách để cài đặt phần mềm "thủ công", cách phổ biến của hầu hết các bản phân phối Linux (và được khuyến nghị mạnh mẽ) là cài đặt phần mềm thông qua trình quản lý gói. Bằng cách này, bạn sẽ tự động nhận được các cập nhật bảo mật và có một số mức độ thử nghiệm được thực hiện để đảm bảo khả năng tương thích với phân phối. Nếu bạn cần phiên bản mới nhất và lớn nhất của phần mềm không có sẵn trong các repos chính, hãy sử dụng repo cộng đồng (ví dụ: PPA trong Ubuntu), nhưng luôn sử dụng trình quản lý gói.
Muzer

Không có .setuptệp nào trên Windows, ý bạn setup.exelà tên điển hình cho trình cài đặt?
gronostaj

Xem các apt-gettrang man và các tài liệu liên quan từ đó. Không có tương đương trên Windows ngay cả đối với apt-get install, về cơ bản là bất kỳ điều gì khác mà nó có thể làm.
jthill

5
@jthill, đó là không đúng sự thật. Nó không hoàn toàn bổ sung hoặc phổ biến như apt-get, nhưng các phiên bản Powershell gần đây (Win7 trở lên) OneGetcó thể cài đặt Chocolatey(tương đương với Homebrewtrên Mac). Chúng có thể ít phổ biến hơn so với tương đương của chúng, nhưng để nói rằng không có tương đương trên Windows thì không chính xác.
flith

1
@Tim: câu hỏi này không thể được trả lời một cách hợp lý mà không cần bạn chỉ định chính xác ý của bạn là "tương đương". Những thuộc tính cụ thể của .msicác tập tin và trình cài đặt mà bạn quan tâm? Các tiêu chí chính xác để xác định xem một cái gì đó là "tương đương" hay không? Ví dụ: trình cài đặt chỉ là các chương trình như bất kỳ chương trình nào khác. Hoàn toàn không có gì đặc biệt về một chương trình có tên setup.exe. Kể từ khi setup.exechỉ là một chương trình như bất kỳ chương trình nào khác, và Debian chắc chắn nhất không có một khái niệm về "chương trình", bạn cho rằng tương đương? Nếu không, tai sao không?
Jörg W Mittag

Câu trả lời:


28

Có lẽ gần với trình cài đặt MSI hơn một setup.exe, .debgói bao gồm một cây tệp để sao chép vào hệ thống tệp, cũng như một tập hợp các móc cài đặt trước và sau cài đặt để chạy (trong số những thứ khác). Các hook có thể thực hiện bất kỳ thứ gì trên hệ thống một cách hiệu quả, bao gồm cả thứ mà tôi không nghĩ rằng tôi từng thấy trên Windows: thêm người dùng cho dịch vụ hệ thống. Một điều họ không thể làm là cài đặt một .debgói khác - cơ sở dữ liệu bị khóa trong khi cài đặt, vì vậy điều này chỉ có thể đạt được thông qua các phụ thuộc. Cài đặt .debgói sau đó tạo các mục trong cơ sở dữ liệu trung tâm của các gói đã cài đặt để dễ bảo trì.

Các ttf-mscorefontsgói là thú vị ở chỗ gói bản thân chỉ chứa một kịch bản để tải về và cài đặt các phông chữ. Kịch bản này được thực thi trong một trong những hook này.

Gần hơn setup.execó thể là tải xuống mã nguồn của một progam từ trang chủ của dự án, sau đó chạy ./configure && make && sudo make installhoặc bất kỳ phương pháp nào khác mà các tác giả quyết định sử dụng. Vì phương pháp này không thêm gói vào cơ sở dữ liệu của các chương trình đã cài đặt, nên việc gỡ bỏ nó sau này có thể khó khăn hơn nhiều.

Một sự khác biệt nữa là một .debchỉ định phụ thuộc của nó, vì vậy cài đặt đúng có thể được đảm bảo. Theo như tôi biết, trong thế giới Windows, MSI không thể gây ra việc cài đặt MSI khác, do đó setup.exethường được sử dụng cho loại theo dõi phụ thuộc này. Một số ý kiến ​​lưu ý rằng MSIs có thể đặt tên phụ thuộc, nhưng vì không có cơ sở dữ liệu trung tâm của MSI giống như có .debcác gói, nên việc thiếu phụ thuộc sẽ chỉ gây ra lỗi khi cài đặt.

Do đó, a .deblà một loại ở giữa trình cài đặt MSI và a setup.exe. Gói có thể làm bất cứ điều gì nó muốn trong các móc cài đặt trước và sau khi cài đặt, có thể đặt tên và thường tìm các phụ thuộc của riêng mình và để lại bản ghi cài đặt của nó ở vị trí trung tâm để dễ bảo trì.


2
Trong Windows, trình setup.execài đặt kiểu cũng tích hợp vào hệ thống trình cài đặt được theo dõi (với trình gỡ cài đặt, v.v.). Với cả MSI và trình .execài đặt, các phụ thuộc được xử lý bằng cách nhúng phụ thuộc vào trình cài đặt ( ví dụ: trình cài đặt phân phối lại VC hoặc trình cài đặt DirectX) và bằng cách cài đặt các tệp DLL phụ thuộc cùng với tệp thực thi (hoặc như các cụm hệ thống). Như vậy setup.execũng tương tự .deb. Tương đương với xây dựng từ nguồn cũng được xây dựng từ nguồn trên Windows ;-).
Stephen Kitt

Tôi làm không phải là một điều mà làm cho MSIs gần gũi hơn với các gói Debian hơn thực thi thiết lập: một MSI không thể cài đặt khác MSI, giống như một gói Debian không thể cài đặt gói khác (ngoại trừ qua sự phụ thuộc của nó).
Stephen Kitt

@StephenKitt: Trình setup.execài đặt kiểu không bị "theo dõi" bởi HĐH trừ khi họ chạy MSI bên dưới (và sau đó MSI là những người được theo dõi). Thực tế là họ có một khóa đăng ký gỡ cài đặt không có liên quan đến điều này. Điều đó giống như nói rằng mọi tệp đều được theo dõi bởi vì nó được liệt kê trong hệ thống tệp.
Mehrdad

2
MSI có thể và thường (trong các sản phẩm lớn hơn), tuy nhiên, do không có kho lưu trữ trung tâm của .MSI, thường thì điều xảy ra khi bạn bỏ lỡ một phụ thuộc là họ từ chối cài đặt.
Matteo Italia

1
"Một cái gì đó tôi không nghĩ rằng tôi từng thấy trên Windows: thêm người dùng cho dịch vụ hệ thống". Tôi khá chắc chắn rằng các trình cài đặt SQL Server, IIS và Visual Studio làm điều này. Nhưng có thể ít rõ ràng hơn khi mô hình người dùng Windows được tinh chỉnh hơn một chút rằng mô hình Unix / Linux mặc định (có thể là root hoặc bạn không) ..
MSalters

15

Các trình cài đặt nhị phân một tệp mà tôi đã thấy trên Linux là .shcác tệp chứa tập lệnh shell được nối với một đốm nhị phân, như sau:

#!/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]

Điều này về cơ bản tương đương với một setup.execái cũng tự giải nén vào thư mục tạm thời và chạy trình cài đặt thực từ đó.


6

Lấy từ: https://askubfox.com/questions/13415/what-are-run-files/13416#13416

Một tập tin .sl thường là một chương trình được thực hiện tùy chỉnh cần được thực thi để cài đặt một chương trình. những thứ này thường không được hỗ trợ vì chúng không theo dõi các tệp đi đâu và thường không cung cấp phương thức gỡ cài đặt. không có cách nào để chắc chắn kịch bản sẽ làm gì với hệ thống của bạn để chúng được coi là không an toàn.

Chúng gần với tệp exe của windows và do đó đi kèm với các vấn đề tương tự.

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.