[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#451369: aptitude: Does not show installed package with other architecture



Package: apt
Followup-For: Bug #451369
Control: merge 451369 670668

The problem concerns an installed package whose architecture is not in
APT::Architectures:
- the package is not displayed in apt frontends, it's status can not
  be inspected, neither can it be removed (by the casual user); and
- other packages may become dpkg uninstallable due to conflicts,
  multi-arch version lockstep issues, etc. which apt does not know
  about, can not fix, and tries to install the uninstallable packages
  anyway (results in dpkg errors).

The very purpose of APT::Architectures is to inform apt (not dpkg)
which architectures to consider.  Arguably, that makes this not a bug
but an unsupportable configuration.  The previous suggestion from
Goswin von Brederlow seems ok:

> the problem in 451369 is that packages that are neither APT::Architecture
> not "all" are simply ignored when parsing index files. When parsing
> Packages files this might be a good idea to allow for multi-architecture
> Packages files. When parsing /var/lib/dpkg/status it seems wrong.

With that solution, at least apt remains aware of all packages which
dpkg is aware of, preventing problems with installed packages (and
being able to handle issues with partial installs such as [1]).

I can not say whether that is a good solution or not.  If not, then
this report should be closed or +wontfix.

[1] http://bugs.debian.org/670900

* Work-around with *proper* usage of multi-arch

Follow the multi-arch usage instructions [2], adding all foreign
architectures to dpkg.  APT::Architectures must contain an entry for
every architecture of an installed package; it is best to leave this
unset since the default is ok.

$ dpkg --print-architecture
amd64
$ dpkg --print-foreign-architectures
i386
$ apt-config dump | grep -i ^APT::Architectures::
APT::Architectures:: "amd64";
APT::Architectures:: "i386";

Configure your sources.list using the arch-qualified syntax
(“[arch=amd64]”).  If you want apt to download package lists for
amd64, but not i386, your sources.list might be similar to this:

deb [arch=amd64] http://ftp.au.debian.org/debian/ wheezy main
deb [arch=amd64] http://mirror.waia.asn.au/debian/ wheezy main
deb-src http://ftp.au.debian.org/debian/ wheezy main

Any “deb” line which is not arch-qualified will fetch lists for all
APT::Architectures.  Users of stable can use this to receive
security updates:

deb http://security.debian.org/ wheezy/updates main

[2] http://wiki.debian.org/Multiarch/HOWTO#Usage


Reply to: