重命名标准命名的.deb文件是否安全?


13

.deb文件名的已建立结构为package_version_architecture.deb
根据段:

有些软件包不遵循名称结构 package_version_architecture.deb。用dpkg-name重命名的软件包将遵循此结构。通常,这不会影响dselect / dpkg如何安装软件包,但是其他安装工具可能取决于此命名结构。

题:

但是,重命名时,是否有任何实际情况.deb包文件强烈联合国建议?.deb为我的软件提供自定义文件名是一种正常做法吗?

例:

  • My Program for Linux v1.0.0 (Pro).deb —自定义命名
  • my-program_1.0.0-1_amd64.deb -正确的官方命名

注意:

打算创建存储库,而只是.deb在我的网站上托管软件包以直接下载。


8
拜托,因为热爱万物,因此请勿在文件名中使用空格或括号。从命令行处理它们很麻烦,并且是文件处理中潜在错误的来源。
奥斯汀·海默尔加恩

Answers:


26

多年来,我已经积累了大量.deb使用非标准名称的软件包,并且我不记得遇到任何问题。如今人们可能会遇到的具有非标准名称的“著名”软件包包括google-chrome-stable_current_amd64.debsteam.deb。(在两种情况下,固定的无版本名称可确保可以将稳定的URL用于下载,并将稳定的名称用于安装说明。)

但是,我记得他们的名字中有空格。这也不会引起工具问题,但是可能会给您的用户造成混乱(因为如果使用基于shell的工具,他们将需要引用文件名或转义空格)。

需要注意的另一点是,使用与您的软件包名称(存储在control文件中)不同的非标准名称也会引起混淆,例如,在尝试删除软件包时(因为软件包名称不会与用于安装的名称相同)。

所有这些的结果是,如果您不想坚持规范的名称,那么我会推荐类似my-program.debmy-program_amd64.deb(取决于您是否要支持多种体系结构)。如果要允许下载较旧的版本,也可以使该链接指向版本化的文件名。


“可以使用稳定的URL进行下载”-如果Google和Valve从未听说过重定向,我会感到惊讶。
OrangeDog

@OrangeDog我会这样。进行固定下载(不带重定向)仍然使事情变得更简单(因为重定向时,磁盘上使用的最终文件名取决于用于下载的工具而有所不同)。
斯蒂芬·基特

10

文件名经过标准化,主要是为了使用归档维护软件和本地缓存。

在过去,在将m68k体系结构添加到Debian之前,文件名使用“ package _ version .deb”,没有问题。当存档软件需要在同一目录中存储i386和存储m68k相同软件包和版本的软件包时,会将体系结构名称添加到文件名中。由于软件包列表始终包含长文件名和8.3文件名,因此可以在不破坏客户端的情况下实现该文件名

Dpkg通常根本不关心软件包的文件名。在安装运行期间,APT会生成一个目录,其中包含用于此安装运行的所有软件包文件,并且每个文件在当前运行中的编号前都带有文件名(即,如果您安装软件包foo版本1和软件包bar版本2,具体foo取决于,apt将会通过0-bar_2_all.deb并传递1-foo_1_amd64.deb给dpkg)。

APT通常假定名称对于缓存目的是唯一的。如果您重复使用一个名称,则如果新文件较大,则已经在其缓存中拥有此文件的用户将尝试继续下载,这将使他们留下一个无效文件,该文件随后由于校验和测试失败而被丢弃。但是会向用户显示此错误,他们必须重新启动安装运行。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.