什么是“劣质”包装?


34

拥有质量差的软件包是什么意思(必须具有质量差的软件包是什么质量),如果我安装质量差但仍在安装的软件包会发生什么。

在此处输入图片说明


1
从开发人员的角度来看,这个问题似乎已经与另一个问题合并了。并非所有答案(至少是我的答案)都适用于最终用户。
gertvdijk

Answers:


27

通过查看该对话框中提供的详细信息,可以了解为什么特定软件包的质量差。通常必须处理包装的包装方式,而不是包装本身。

如果软件包不符合Debian政策,则认为其质量很差。

触发此警告的一些常见问题是:

  • 该软件包有一些文件所有权错误
  • 控制文件等中没有有效的“已安装尺寸”字段。

感谢提供Debian Policy链接,对您的帮助很大。
路易斯·阿尔瓦拉多

14

含义因deb的不同而不同,这基本上意味着有些东西丢失/未正确包装100%。

您可以使用dpkg安装它:

假设您已将.deb下载到〜/ Downloads文件夹中,请在终端中运行以下命令以安装所有.deb文件:

cd ~/Downloads
sudo dpkg -i *.deb
sudo apt-get install -f

或使用Gdebi。首先安装Gdebi:

sudo apt-get install gdebi gdebi-core

然后,您可以右键单击.deb文件,然后选择“使用Gdebi软件包安装程序打开”。

我实际上已经在几个小时前发布了有关此内容的信息:如何在获取“软件包质量不佳”时安装.Deb文件Ubuntu软件中心中的错误


12

为确保我们使用软件中心安装的软件包没有错误和Debian策略违规,可以使用Lintian检查它们。只有这样,软件包的安装才被批准。

如果没有选择覆盖这个选项,我们可以通过其他更传统的途径安装软件包。


USC 的“质量差”错误有助于选择非标准软件包,并警告我们它们不完全符合Debian政策。在使用lintian安装之前,请先检查软件包。这正是软件中心所做的:

lintian name_of_package.deb

然后,您将看到错误(E)或警告(W),这些错误实际上表明了软件中心抱怨的软件包弱点。在上面的示例中,文件权限设置为错误的用户或组ID。如果软件包不替换系统文件,则这不会影响您的整体系统稳定性,因此不太可能对您的安装构成风险。但是,错误的权限可能是导致新安装的应用程序未按预期运行的原因。

“质量差的程序包”很可能不会影响您的整体系统稳定性或破坏系统。当您信任来源时,情况就更是如此。Debian甚至维护了一个列表,其中显示了Debian档案包中Lintian标签

但是,在安装这样的软件包之前,先找出究竟是什么错误是一个好主意。这也将帮助您提交错误报告,使打包人员有机会对其进行修复。


5

包装质量不好

“不允许安装违反质量标准的软件包。这可能会在您的计算机上引起严重的问题。请联系提供此软件包文件的人员或组织,并在下面提供详细信息。”

有时,包装的质量确实很差,但是在大多数情况下,这只是一个误判。我们无法检查这些软件包的质量,但是如果您信任源,则可以尝试使用这些替代方法来安装软件包。

不良的质量还表明下载时损坏,例如丢包或间歇性的Internet访问。

  • 解决问题

使用GDebi软件包管理器进行安装

sudo apt-get install gdebi gdebi-core


3

这个答案是为开发人员而写的,因为我在另一个主持人似乎已经合并的问题中回答了它。

因此,如果我对您的理解正确,则说明您正在打包软件,但是像Software Center这样的安装程序却在抱怨软件包的质量。

包装时请尝试使用Lintian,因为这也是安装时检查的工具。简而言之,这是

Debian软件包检查器。它可用于检查二进制和源软件包是否符合Debian策略以及其他常见的包装错误。

例:

$ lintian -i packagename.deb
W: packagename: package-name-doesnt-match-sonames packagename
N: 
N:    The package name of a library package should usually reflect the soname
N:    of the included library. The package name can determined from the
N:    library file name with the following code snippet:
N:    
N:     $ objdump -p /path/to/libfoo-bar.so.1.2.3 | sed -n -e's/^[[:space:]]*SONAME[[:space:]]*//p' | sed -e's/\([0-9]\)\.so\./\1-/; s/\.so\.//'
N:    
N:    Severity: normal, Certainty: possible
N:    
N:    Check: binaries, Type: binary, udeb
N:

当您debuild(应该)使用来构建软件包时,您甚至一开始都无法构建有错误的软件包,所以我最好的猜测是您以错误的方式构建它。debuild在源代码包上运行Lintian,在生成过程中,您还将看到输出:

$ debuild -S
[...]
Now running lintian...
W: packagename source: debian-rules-missing-recommended-target build-arch
W: packagename source: debian-rules-missing-recommended-target build-indep
Finished running lintian.
[...]

如果您有以开头的行E:,则其中存在严重错误,这将阻止您按常规方式分发软件包。他们只需要具有一定程度的质量即可。


2

WebUpd8上的此页面包含可能对您有用的信息。如果软件包是“ .deb”文件,则列出了修复程序。该页面上的一般解释是:

有时,这些软件包的质量确实很差,但是大多数时候,它们只是软件包说明中的简单错误等,不会影响您。无论哪种方式,安装它们的风险均由您自己承担!


0

您的系统可能会损坏。安装软件包后,系统可能无法正常启动,或者系统中的某些组件可能无法正常运行


4
通用答案是通用。您能否提供更多详细信息,以使您的答案更有帮助?
拉斐尔·西耶拉克(RafałCieślak)2012年

1
将程序包归类为不良程序的想法是,它没有在系统上经过全面测试,因此存在更多不确定性。因此,即使安装了质量差的软件包,系统也有可能顺利运行。如果您仍要安装,请使用synaptic进行安装。
拉维·兰詹
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.