Package: aptitude
Version: 0.4.11.11-1

I just tried installing git-core via aptitude on a minimal amd64 vserver
running squeeze. The network mirror i was pulling from has been really
flakey (maybe a corrupt network service? A MITM?  who knows...) and some
packages have been typically not validating properly. (i was pulling
from ftp.us.debian.org, fwiw)

In the run transcribed below, the x11-common package (a Pre-Dep of
xauth, which is a Recommendation of openssh-client, which is in turn an
implicit Recommendation (via virtual package ssh-client) of git-core)
failed to install due to a network download failure during an
installation of git-core.  But aptitude returned error code 0
("success"!) for the operation as a whole.  Re-running the command
immediately (since i was directly supervising this operation, i noticed
the unusual spew amidst the typical console feedback), i was surprised
to see aptitude not even bother to try to re-fetch x11-common, but
instead to remove a bunch of packages that it believed were no longer
needed (originally installed because they were dependencies of
x11-common, i guess).

Presumably, if i'd run this against another mirror, or against the same
mirror at a different time, the outcome would have been different
(x11-common would have been installed, along with all of these other
packages).

The idea that my package manager might run, reporting no explicit error,
and leave my system in an undeterminate state seems like a Bad Thing.

For example, imagine managing a labful of a hundred machines.  You use
cfengine or puppet or cssh or hand-crafted scripts or whatever to invoke

  aptitude install git-core -y

on all machines, with your choice of appropriate remedial action should
the command fail.  How many of those machines end up with x11-common
installed?  As an administrator, how can you maintain a predictable
working environment for your users?

        --dkg

0 monkey:/# aptitude install git-core
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Writing extended state information... Done
The following NEW packages will be installed:
  ca-certificates{a} git-core libcurl3-gnutls{a} libedit2{a}
  liberror-perl{a} libexpat1{a} libidn11{a} libkeyutils1{a} libkrb53{a}
  libldap-2.4-2{a} libx11-6{a} libx11-data{a} libxau6{a} libxcb-xlib0{a}
  libxcb1{a} libxdmcp6{a} libxext6{a} libxmuu1{a} openssh-blacklist{a}
  openssh-blacklist-extra{a} openssh-client{a} openssl{a} rsync{a}
  x11-common{a} xauth{a}
0 packages upgraded, 25 newly installed, 0 to remove and 0 not upgraded.
Need to get 12.8MB of archives. After unpacking 31.1MB will be used.
Do you want to continue? [Y/n/?]
Writing extended state information... Done
Get:1 http://ftp.us.debian.org squeeze/main openssh-blacklist 0.4.1 [2125kB]
Get:2 http://ftp.us.debian.org squeeze/main openssh-blacklist-extra
0.4.1 [2127k
B]
Get:3 http://ftp.us.debian.org squeeze/main x11-common 1:7.3+18 [343kB]
Get:4 http://ftp.us.debian.org squeeze/main libxau6 1:1.0.3-3 [12.5kB]
Get:5 http://ftp.us.debian.org squeeze/main libxdmcp6 1:1.0.2-3 [17.9kB]
Get:6 http://ftp.us.debian.org squeeze/main libxcb1 1.1-1.1 [47.5kB]
Get:7 http://ftp.us.debian.org squeeze/main libxcb-xlib0 1.1-1.1 [15.3kB]
Get:8 http://ftp.us.debian.org squeeze/main libx11-data 2:1.1.5-2 [169kB]
Get:9 http://ftp.us.debian.org squeeze/main libx11-6 2:1.1.5-2 [660kB]
Get:10 http://ftp.us.debian.org squeeze/main libxext6 2:1.0.4-1 [36.6kB]
Get:11 http://ftp.us.debian.org squeeze/main libxmuu1 2:1.0.4-1 [13.7kB]
Get:12 http://ftp.us.debian.org squeeze/main xauth 1:1.0.3-2 [32.9kB]
Get:13 http://ftp.us.debian.org squeeze/main libedit2 2.11~20080614-1
[75.5kB]
Get:14 http://ftp.us.debian.org squeeze/main libidn11 1.10-3 [147kB]
Get:15 http://ftp.us.debian.org squeeze/main libkeyutils1 1.2-10 [6164B]
Get:16 http://ftp.us.debian.org squeeze/main libkrb53 1.6.dfsg.4~beta1-6
[519kB]
Get:17 http://ftp.us.debian.org squeeze/main libldap-2.4-2 2.4.11-1 [205kB]
Get:18 http://ftp.us.debian.org squeeze/main openssh-client 1:5.1p1-5
[854kB]
Get:19 http://ftp.us.debian.org squeeze/main openssl 0.9.8g-15 [1043kB]
Get:20 http://ftp.us.debian.org squeeze/main ca-certificates 20080809
[151kB]
Get:21 http://ftp.us.debian.org squeeze/main libcurl3-gnutls 7.18.2-8
[214kB]
Get:22 http://ftp.us.debian.org squeeze/main libexpat1 2.0.1-4 [136kB]
Get:23 http://ftp.us.debian.org squeeze/main liberror-perl 0.17-1 [23.6kB]
Get:24 http://ftp.us.debian.org squeeze/main git-core 1:1.5.6.5-3 [3426kB]
Get:25 http://ftp.us.debian.org squeeze/main rsync 3.0.5-1 [349kB]
Fetched 12.8MB in 48s (263kB/s)
Preconfiguring packages ...
Selecting previously deselected package openssh-blacklist.
(Reading database ... 15952 files and directories currently installed.)
Unpacking openssh-blacklist (from .../openssh-blacklist_0.4.1_all.deb) ...
Selecting previously deselected package openssh-blacklist-extra.
Unpacking openssh-blacklist-extra (from
.../openssh-blacklist-extra_0.4.1_all.deb) ...
Selecting previously deselected package libedit2.
Unpacking libedit2 (from .../libedit2_2.11~20080614-1_amd64.deb) ...
Selecting previously deselected package libidn11.
Unpacking libidn11 (from .../libidn11_1.10-3_amd64.deb) ...
Selecting previously deselected package libkeyutils1.
Unpacking libkeyutils1 (from .../libkeyutils1_1.2-10_amd64.deb) ...
Selecting previously deselected package libkrb53.
Unpacking libkrb53 (from .../libkrb53_1.6.dfsg.4~beta1-6_amd64.deb) ...
Selecting previously deselected package libldap-2.4-2.
Unpacking libldap-2.4-2 (from .../libldap-2.4-2_2.4.11-1_amd64.deb) ...
Selecting previously deselected package openssh-client.
Unpacking openssh-client (from .../openssh-client_1%3a5.1p1-5_amd64.deb) ...
Selecting previously deselected package openssl.
Unpacking openssl (from .../openssl_0.9.8g-15_amd64.deb) ...
Selecting previously deselected package ca-certificates.
Unpacking ca-certificates (from .../ca-certificates_20080809_all.deb) ...
Selecting previously deselected package libcurl3-gnutls.
Unpacking libcurl3-gnutls (from .../libcurl3-gnutls_7.18.2-8_amd64.deb) ...
Selecting previously deselected package libexpat1.
Unpacking libexpat1 (from .../libexpat1_2.0.1-4_amd64.deb) ...
Selecting previously deselected package liberror-perl.
Unpacking liberror-perl (from .../liberror-perl_0.17-1_all.deb) ...
Selecting previously deselected package git-core.
Unpacking git-core (from .../git-core_1%3a1.5.6.5-3_amd64.deb) ...
Selecting previously deselected package libxau6.
Unpacking libxau6 (from .../libxau6_1%3a1.0.3-3_amd64.deb) ...
Selecting previously deselected package libxdmcp6.
Unpacking libxdmcp6 (from .../libxdmcp6_1%3a1.0.2-3_amd64.deb) ...
Selecting previously deselected package libxcb1.
Unpacking libxcb1 (from .../libxcb1_1.1-1.1_amd64.deb) ...
Selecting previously deselected package libxcb-xlib0.
Unpacking libxcb-xlib0 (from .../libxcb-xlib0_1.1-1.1_amd64.deb) ...
Selecting previously deselected package libx11-data.
Unpacking libx11-data (from .../libx11-data_2%3a1.1.5-2_all.deb) ...
Selecting previously deselected package libx11-6.
Unpacking libx11-6 (from .../libx11-6_2%3a1.1.5-2_amd64.deb) ...
Selecting previously deselected package rsync.
Unpacking rsync (from .../rsync_3.0.5-1_amd64.deb) ...
Processing triggers for man-db ...
Setting up openssh-blacklist (0.4.1) ...
Setting up openssh-blacklist-extra (0.4.1) ...
Setting up libedit2 (2.11~20080614-1) ...
Setting up libidn11 (1.10-3) ...
Setting up libkeyutils1 (1.2-10) ...
Setting up libkrb53 (1.6.dfsg.4~beta1-6) ...
Setting up libldap-2.4-2 (2.4.11-1) ...
Setting up openssh-client (1:5.1p1-5) ...
Setting up openssl (0.9.8g-15) ...
Setting up ca-certificates (20080809) ...
Updating certificates in /etc/ssl/certs....done.
Running hooks in /etc/ca-certificates/update.d....done.
Setting up libcurl3-gnutls (7.18.2-8) ...
Setting up libexpat1 (2.0.1-4) ...
Setting up liberror-perl (0.17-1) ...
Setting up git-core (1:1.5.6.5-3) ...
Setting up libxau6 (1:1.0.3-3) ...
Setting up libxdmcp6 (1:1.0.2-3) ...
Setting up libxcb1 (1.1-1.1) ...
Setting up libxcb-xlib0 (1.1-1.1) ...
Setting up libx11-data (2:1.1.5-2) ...
Setting up libx11-6 (2:1.1.5-2) ...
Setting up rsync (3.0.5-1) ...
E: Failed to fetch
http://ftp.us.debian.org/debian/pool/main/x/xorg/x11-common_7.3+18_all.deb:
Hash Sum mismatch
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Writing extended state information... Done

0 monkey:/# aptitude install git-core
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Writing extended state information... Done
The following packages will be REMOVED:
  libx11-6{u} libx11-data{u} libxau6{u} libxcb-xlib0{u} libxcb1{u}
  libxdmcp6{u}
0 packages upgraded, 0 newly installed, 6 to remove and 0 not upgraded.
Need to get 0B of archives. After unpacking 4899kB will be freed.
Do you want to continue? [Y/n/?]
Writing extended state information... Done
(Reading database ... 17305 files and directories currently installed.)
Removing libx11-6 ...
Removing libx11-data ...
Removing libxcb-xlib0 ...
Removing libxcb1 ...
Removing libxau6 ...
Removing libxdmcp6 ...
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Writing extended state information... Done

0 monkey:/#

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to