当前位置: 首页>>技术教程>>正文


什么是“bad quality”包装?

,

问题描述

如果我安装质量差但仍然安装的软件包,会有什么样的质量软件包是什么意思?

package-management,ubuntu

最佳解决方法

通过查看该对话框中提供的详细信息,您可以了解特定包被视为质量差的原因。它通常必须处理包的封装方式而不是封装本身。

如果包装不符合Debian policy,则认为其质量较差。

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

  • 该程序包有一些文件所有权错误

  • 控制文件中没有有效的”Installed-size”字段等。

次佳解决方法

从deb到deb的含义可能有所不同,它基本上意味着缺少/没有100%正确包装的东西。

您可以使用dpkg安装它:

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

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

或者使用Gdebi。首先安装Gdebi:

sudo apt-get install gdebi gdebi-core

然后,您可以右键单击.deb文件并选择“使用Gdebi Package Installer打开”。

我几个小时前就发布了这个:How To Install .Deb Files When Getting “The package is of bad quality” Error In Ubuntu Software Center

第三种解决方法

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

如果没有覆盖它的选项,我们可以通过other more traditional paths安装包。


USC的”bad quality”错误有助于选择non-standard包并警告我们它们不完全符合Debian policy。在使用lintian安装软件包之前检查软件包是个好主意。这正是软件中心所做的事情:

lintian name_of_package.deb

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

“质量差的软件包”很可能不会影响您的整体系统稳定性或破坏您的系统。当您信任您的来源时,情况就更不如此了。甚至还有一个由Debian维护的列表,显示了Lintian tags in packages from the Debian archives的出现。

然而,在安装这样的软件包之前找出确切的错误是个好主意。这也将帮助您提交错误报告,以便包装人员有机会修复它。

第四种方法

包装质量很差

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

有时,包装的质量确实很差,但大多数时候,它只是一个误报。我们无法检查这些软件包的质量,但如果您信任这些软件包,则可以尝试使用这些替代软件进行软件包安装。

质量差也表明下载时丢包,例如丢包或间歇性Internet访问。

  • 解决问题

使用GDebi Package Manager进行安装

sudo apt-get install gdebi gdebi-core

第五种方法

这个答案是为开发人员编写的,正如我在另一个主持人似乎合并的问题中回答的那样……

因此,如果我正确地理解你,那么你正在打包一个软件,但像软件中心这样的安装程序正在抱怨软件包的质量。

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

Debian package checker. It can be used to check binary and source packages for compliance with the Debian policy and for other common packaging errors.

例:

$ 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:开头的行,则会出现严重错误,这将阻止您以常规方式分发包。他们只需要有一定的质量。

第六种方法

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

sometimes, those packages are indeed of bad quality, but most of the times are just simple errors in the package description and such, which do not affect you. Either way, install them at your own risk!

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2556.html,未经允许,请勿转载。