相當於 Debian 或 Ubuntu 中的“.msi”和“setup.exe”檔案?

相當於 Debian 或 Ubuntu 中的“.msi”和“setup.exe”檔案?

這個答案在 Windows 上安裝應用程式的說明.msi和檔案。setup.exe

是否有與Debian 或 Ubuntu 中的檔案等效的.msi檔案?包檔setup.exe是否.deb對應.msisetup.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包含與二進位 blob 連接的 shell 腳本的文件,如下所示:

#!/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 exe 檔案很接近,因此存在相同的問題。

相關內容