Comment 0 for bug 255545

Revision history for this message
Colin Watson (cjwatson) wrote :

Binary package hint: apt

When acquiring packages from a networked archive, apt is quite happy for the uncompressed Packages file to be omitted to save space; it only fetches the indexes it needs, and will try Packages.bz2 (if bzip2 is available) or Packages.gz first, so omitting Packages is harmless.

However, the same does not hold for CDs, which is rather unfortunate as the space problem is more acute there; we'd like to be able to remove the uncompressed Packages files from our alternate install CDs and save about 1.5MB. apt-cdrom wants to copy all the indexes, and gets upset when some of them are missing. Here's a demonstration with a hacked-up loop-mounted image from which I removed all the uncompressed Packages files:

  $ sudo apt-cdrom -m add
  Using CD-ROM mount point /cdrom/
  Identifying.. [661daa73dbd974b9ad9c1ffeeab8f8f0-2]
  Scanning disc for index files..
  Found 2 package indexes, 0 source indexes, 0 translation indexes and 1 signatures
  Found label 'Ubuntu 8.10 _Intrepid Ibex_ - Alpha i386 (20080806.2)'
  This disc is called:
  'Ubuntu 8.10 _Intrepid Ibex_ - Alpha i386 (20080806.2)'
  Copying package lists...gpgv: Signature made Wed 06 Aug 2008 16:39:54 BST using DSA key ID FBB75451
  gpgv: Good signature from "Ubuntu CD Image Automatic Signing Key <email address hidden>"
  E: Could not open file /cdrom/dists/intrepid/main/binary-i386/Packages - open (2 No such file or directory)
  E: Unable to determine the file size - fstat (9 Bad file descriptor)
  W: Hash mismatch for: main/binary-i386/Packages
  E: Could not open file /cdrom/dists/intrepid/main/debian-installer/binary-i386/Packages - open (2 No such file or directory)
  E: Unable to determine the file size - fstat (9 Bad file descriptor)
  W: Hash mismatch for: main/debian-installer/binary-i386/Packages
  E: Could not open file /cdrom/dists/intrepid/restricted/binary-i386/Packages - open (2 No such file or directory)
  E: Unable to determine the file size - fstat (9 Bad file descriptor)
  W: Hash mismatch for: restricted/binary-i386/Packages
  E: Could not open file /cdrom/dists/intrepid/restricted/debian-installer/binary-i386/Packages - open (2 No such file or directory)
  E: Unable to determine the file size - fstat (9 Bad file descriptor)

I suspect that it might be possible to work around this by removing the uncompressed Packages files from Release, but this would probably cause other problems. Last I checked, the size and checksums of Packages had to be in Release even if the files themselves were missing, in order that apt could verify those files after uncompressing them. People do create local mirrors starting from an Ubuntu CD image quite often, so I wouldn't like to introduce a two-way incompatibility here.

Would it be possible to only fail if none of the versions of a given Packages file are available, or explicitly copy only the compressed files, or synthesise the uncompressed files from the compressed ones in order to verify Release file integrity, or something?