相当于 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 文件很接近,因此存在相同的问题。

相关内容