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

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: