What is a "bad quality" package?

You can see why a particular package is considered a bad quality by looking at the details provided in that dialog box. It usually has to deal with how a package is packaged and not the package itself.

If the package doesn't meet the Debian policy, then it is considered to be of a poor quality.

Some common issues that trigger this warning are:

  • The package has some file ownership errors
  • There is no valid "Installed-size" field in the control file, etc.

The meaning can vary from deb to deb, it basically means something is missing / not packaged 100% right.

You can install it either using dpkg:

Assuming you've downloaded the .deb in your ~/Downloads folder, run the following commands in a terminal to install all the .deb files:

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

Or use Gdebi. Install Gdebi first:

sudo apt-get install gdebi gdebi-core

You can then right click a .deb file and select "Open with Gdebi Package Installer".

I've actually posted about this a few hours ago: How To Install .Deb Files When Getting "The package is of bad quality" Error In Ubuntu Software Center


To make sure that packages we install using the Software Center are free of errors and Debian policy violations they are checked using Lintian. Only then the installation of a package will be granted.

In case there is no option to override this we may install packages via other more traditional paths.


The "bad quality" error of USC helps to pick non-standard packages and to warn us about them not entirely meeting the Debian policy. It is a good idea to check the package before installing it with lintian. That exactly is what the Software Center does too:

lintian name_of_package.deb

You will then see errors (E) or warnings (W) that indiciate what exactly are the weaknesses of your package the Software Center complains about. In the example case above it is the file permissions set to a wrong user or group ID. In case the package does not replace system files this should not affect your overall system stability and thus is unlikely to be a risk to your installation. However wrong permission may be a cause of a newly installed application not running as expected.

A "bad quality package" most probably does not affect your overall system stability or break your system. This is even less so when you trust your source. There even is a list maintained by Debian that shows occurences of Lintian tags in packages from the Debian archives.

Nevertheless it is a good idea to find out what exactly is wrong before we install such a package. This will also help you filing a bug report to give packaging people a chance to fix it.


The package is of bad quality

"The installation of a package which violates the quality standards isn't allowed. This could cause serious problems on your computer. Please contact the person or organisation who provided this package file and include the details beneath."

Sometimes, the packages are really of bad quality but most of the time, it is just a false positive. There is not much we can do to check the quality of those packages but if you trust the source, you can try these alternatives for package installation.

Bad quality also suggests corruption when downloading such as dropped packets or intermittent Internet access.

  • Fix the problem

Installation using GDebi Package Manager

sudo apt-get install gdebi gdebi-core


this answer was written for developers, as I answered it in another question which moderators seems to have merged...

So if I'm understanding you correctly, you're packaging up a piece of software, but installers like Software Centre are complaining about the package quality.

Try using Lintian when packaging, as that's the tool checking at installation time as well. In short, it's a

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.

Example:

$ 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:

When you're building the package using debuild (as you should), you can't even build a package with errors in the first place, so my best guess is that you're building it the wrong way. debuild runs Lintian over the source package and during the build process you'll see the output too:

$ 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.
[...]

If you have lines starting with E:, you have serious errors in it, which will prevent you from distributing packages the regular way. They simply need have a certain degree of quality.