Bug#416241: apt-get, apt-cache: Please support multiple architecture cache files in the same location
Package: apt
Version: 0.6.46.4-0.1
Severity: minor
When using apt for cross-building, it is common to query the
Debian mirrors for packages suitable for the host (e.g. i386) and then
query the toolchain cache for packages suitable for the target
(e.g. arm). It is also common to build more than one cross-build
architecture on any one host, requiring frequent changes between cache
files/directories.
apt makes it very difficult changing architectures like this because the
list files created by:
apt-get -o Apt::Architecture=arm -c myconf.unstable update
then get clobbered when the next command needs:
apt-get -o Apt::Architecture=powerpc -c myconf.unstable update
(In this example, myconf.$suite contains Dir options to set
non-privileged directories, usually beneath ~/.dpkg-cross.)
apt-get update is needed because apt-cache cannot switch from one
architecture to another without an update.
It is already necessary to have separate directory paths for each suite
but the list name includes the architecture name and another arch could
exist alongside. It is becoming unmanageable to have three directory paths
(testing, unstable, experimental) for every architecture! That's nearly
40 separate directory trees. It is also incredibly wasteful to have to
update one tree, perform a query, update a separate tree to perform a
query on a different arch and then have to update the original tree
again just because we've changed arch in between.
These are only ever package queries, not installations. It would be so
much easier if apt-cache could manage such queries directly instead of
producing an error (or no results at all) when simply changing
architecture without an update.
-- Package-specific info:
-- apt-config dump --
APT "";
APT::Architecture "powerpc";
APT::Build-Essential "";
APT::Build-Essential:: "build-essential";
Dir "/";
Dir::State "var/lib/apt/";
Dir::State::lists "lists/";
Dir::State::cdroms "cdroms.list";
Dir::State::userstatus "status.user";
Dir::State::status "/var/lib/dpkg/status";
Dir::Cache "var/cache/apt/";
Dir::Cache::archives "archives/";
Dir::Cache::srcpkgcache "srcpkgcache.bin";
Dir::Cache::pkgcache "pkgcache.bin";
Dir::Etc "etc/apt/";
Dir::Etc::sourcelist "sources.list";
Dir::Etc::sourceparts "sources.list.d";
Dir::Etc::vendorlist "vendors.list";
Dir::Etc::vendorparts "vendors.list.d";
Dir::Etc::main "apt.conf";
Dir::Etc::parts "apt.conf.d";
Dir::Etc::preferences "preferences";
Dir::Bin "";
Dir::Bin::methods "/usr/lib/apt/methods";
Dir::Bin::dpkg "/usr/bin/dpkg";
DPkg "";
DPkg::Pre-Install-Pkgs "";
DPkg::Pre-Install-Pkgs:: "/usr/bin/apt-listchanges --apt || test $? -ne 10";
DPkg::Pre-Install-Pkgs:: "/usr/sbin/dpkg-preconfigure --apt || true";
DPkg::Tools "";
DPkg::Tools::Options "";
DPkg::Tools::Options::/usr/bin/apt-listchanges "";
DPkg::Tools::Options::/usr/bin/apt-listchanges::Version "2";
-- (no /etc/apt/preferences present) --
-- /etc/apt/sources.list --
deb ftp://ftp.uk.debian.org/debian/ unstable main
deb-src ftp://ftp.uk.debian.org/debian/ unstable main
deb ftp://ftp.uk.debian.org/debian/ experimental main
deb-src ftp://ftp.uk.debian.org/debian/ experimental main
deb ftp://mirror.ox.ac.uk/debian/ unstable main
deb-src ftp://mirror.ox.ac.uk/debian/ unstable main
deb http://www.linux.codehelp.co.uk/packages unstable main
deb-src http://www.linux.codehelp.co.uk/packages unstable main
#deb http://www.linux.codehelp.co.uk/packages experimental main
#deb-src http://www.linux.codehelp.co.uk/packages experimental main
#deb-src http://mentors.debian.net/debian unstable main
#deb http://www.emdebian.org/debian/ stable main
#deb http://www.emdebian.org/debian/ testing main
#deb-src http://www.emdebian.org/debian/ testing main
deb http://www.emdebian.org/debian/ unstable main
deb-src http://www.emdebian.org/debian/ unstable main
-- System Information:
Debian Release: 4.0
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: powerpc (ppc)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-3-powerpc
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Versions of packages apt depends on:
ii debian-archive-keyring 2007.02.19 GnuPG archive keys of the Debian a
ii libc6 2.3.6.ds1-13 GNU C Library: Shared libraries
ii libgcc1 1:4.1.1-21 GCC support library
ii libstdc++6 4.1.1-21 The GNU Standard C++ Library v3
apt recommends no packages.
-- no debconf information
Reply to: