Package: aptitude Version: 0.6.8.2-1 Severity: normal Hi,
according to http://people.debian.org/~abe/aptitude/en/ch02s03s05.html "reject aptitude :UNINST" will prevent the resolver from accepting solutions which remove aptitude. I tried to make the following command (which is a stripped-down version of a command that aptitude-robot would execute) not removing openssh-server under any circumstances: # aptitude full-upgrade '~U' openssh-client+ openssh-server: The following packages will be REMOVED: libbsd0{u} libedit2{u} openssh-client{u} 0 packages upgraded, 0 newly installed, 3 to remove and 1 not upgraded. Need to get 0 B of archives. After unpacking 2665 kB will be freed. The following packages have unmet dependencies: openssh-server : Depends: openssh-client (= 1:6.0p1-3) but it is not going to be installed. The following actions will resolve these dependencies: Remove the following packages: 1) openssh-server Accept this solution? [Y/n/q/?] ^C But it didn't work out as expected: # aptitude -P -o 'Aptitude::ProblemResolver::Hints=reject openssh-server :UNINST' full-upgrade '~U' openssh-client+ openssh-server: The following packages will be REMOVED: libbsd0{u} libedit2{u} openssh-client{u} 0 packages upgraded, 0 newly installed, 3 to remove and 1 not upgraded. Need to get 0 B of archives. After unpacking 2665 kB will be freed. The following packages have unmet dependencies: openssh-server : Depends: openssh-client (= 1:6.0p1-3) but it is not going to be installed. The following actions will resolve these dependencies: Remove the following packages: 1) openssh-server [ Worst solution for a remote administrated machine. BTDT. ] Accept this solution? [Y/n/q/?] ^C root@acromantula-domu1:~# aptitude -P -o 'Aptitude::ProblemResolver::Hints=reject openssh-server :UNINST' full-upgrade '~U' openssh-client+ openssh-server: The following packages will be REMOVED: libbsd0{u} libedit2{u} openssh-client{u} 0 packages upgraded, 0 newly installed, 3 to remove and 1 not upgraded. Need to get 0 B of archives. After unpacking 2665 kB will be freed. The following packages have unmet dependencies: openssh-server : Depends: openssh-client (= 1:6.0p1-3) but it is not going to be installed. The following actions will resolve these dependencies: Remove the following packages: 1) openssh-server [ This looks like a bug to me, hence the report. ] Accept this solution? [Y/n/q/?] n The following actions will resolve these dependencies: Keep the following packages at their current version: 1) libbsd0 [0.4.2-1 (now, testing)] 2) libedit2 [2.11-20080614-5 (now, testing)] Upgrade the following packages: 3) openssh-client [1:6.0p1-3 (now) -> 1:6.0p1-4 (testing)] 4) openssh-server [1:6.0p1-3 (now) -> 1:6.0p1-4 (testing)] [ Would be ok, but is not intended. ] Accept this solution? [Y/n/q/?] n The following actions will resolve these dependencies: Keep the following packages at their current version: 1) libbsd0 [0.4.2-1 (now, testing)] 2) libedit2 [2.11-20080614-5 (now, testing)] 3) openssh-client [1:6.0p1-3 (now)] [ This is what I'm trying to achieve automatically. ] Accept this solution? [Y/n/q/?] ^C So despite I've set Aptitude::ProblemResolver::Hints to "reject openssh-server :UNINST" as documented, aptitude proposes as first solution to remove openssh-server. Running just "aptitude -o 'Aptitude::ProblemResolver::Hints=reject" and then interactively provoking this situation by pressing "+" on openssh-client (but not on openssh-server) shows the same proposed resolutions in the TUI. Interestingly setting Aptitude::ProblemResolver::Remove-Level to maximum comes closer to the targeted solution: # aptitude -P -o 'Aptitude::ProblemResolver::Remove-Level=maximum' full-upgrade '~U' openssh-client+ openssh-server: The following packages will be REMOVED: libbsd0{u} libedit2{u} openssh-client{u} 0 packages upgraded, 0 newly installed, 3 to remove and 1 not upgraded. Need to get 0 B of archives. After unpacking 2665 kB will be freed. The following packages have unmet dependencies: openssh-server : Depends: openssh-client (= 1:6.0p1-3) but it is not going to be installed. The following actions will resolve these dependencies: Keep the following packages at their current version: 1) libbsd0 [0.4.2-1 (now, testing)] 2) libedit2 [2.11-20080614-5 (now, testing)] Upgrade the following packages: 3) openssh-client [1:6.0p1-3 (now) -> 1:6.0p1-4 (testing)] 4) openssh-server [1:6.0p1-3 (now) -> 1:6.0p1-4 (testing)] Accept this solution? [Y/n/q/?] n The following actions will resolve these dependencies: Keep the following packages at their current version: 1) libbsd0 [0.4.2-1 (now, testing)] 2) libedit2 [2.11-20080614-5 (now, testing)] 3) openssh-client [1:6.0p1-3 (now)] Accept this solution? [Y/n/q/?] ^C I then tried to set Aptitude::ProblemResolver::Keep-All-Level to minimum, but that doesn't seem to change the situation despite I would have expect that this in general would lead to no action at all happen quite often: root@acromantula-domu1:~# aptitude -P -o 'Aptitude::ProblemResolver::Remove-Level=maximum' -o 'Aptitude::ProblemResolver::Keep-All-Level=minimum' full-upgrade '~U' openssh-client+ openssh-server: The following packages will be REMOVED: libbsd0{u} libedit2{u} openssh-client{u} 0 packages upgraded, 0 newly installed, 3 to remove and 1 not upgraded. Need to get 0 B of archives. After unpacking 2665 kB will be freed. The following packages have unmet dependencies: openssh-server : Depends: openssh-client (= 1:6.0p1-3) but it is not going to be installed. The following actions will resolve these dependencies: Keep the following packages at their current version: 1) libbsd0 [0.4.2-1 (now, testing)] 2) libedit2 [2.11-20080614-5 (now, testing)] Upgrade the following packages: 3) openssh-client [1:6.0p1-3 (now) -> 1:6.0p1-4 (testing)] 4) openssh-server [1:6.0p1-3 (now) -> 1:6.0p1-4 (testing)] Accept this solution? [Y/n/q/?] n The following actions will resolve these dependencies: Keep the following packages at their current version: 1) libbsd0 [0.4.2-1 (now, testing)] 2) libedit2 [2.11-20080614-5 (now, testing)] 3) openssh-client [1:6.0p1-3 (now)] Accept this solution? [Y/n/q/?] ^C JFTR: It also seems to make no difference if I set these options on the commandline or in /root/.aptitude/config. -- System Information: [Tested in a minimal virtual machine installed with "xen-create-image --dist wheezy --hostname acromantula-domu1 --lvm vg0 --dhcp --verbose --pygrub". Report written somewhere else.] -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org