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

Re: apt-get upgrade message in sid



On 2011-02-13 05:08 +0100, Boyd Stephen Smith Jr. wrote:

> In <[🔎] 8roudpFgapU1@mid.individual.net>, Charles Kroeger wrote:
>>apt (0.8.11) unstable; urgency=low
>>
>>  * apt-get install pkg/experimental will now not only switch the
>>    candidate of package pkg to the version from the release
>>    experimental but also of all dependencies of pkg if the current
>>    candidate can't satisfy a versioned dependency.
>>
>> -- David Kalnischkies <kalnischkies@gmail.com>  Fri, 03 Dec 2010
>> 14:09:12 +0100
>>
>>After hitting the 'q' key this message clears and the the packages
>>unpack and setup.
>>
>>What is David Kalnischkies telling me here?
>
> apt-listchanges is displaying the new part of the debian/changelog.

Not quite, it is displaying the new part of NEWS.Debian.

> The change introduced basically makes the package/archive install 
> specification less brain damaged, so that it does the right thing in more 
> cases.

It also means that it will drag in parts of experimental that you didn't
ask for if that is necessary to fulfill your request.  This is probably
what you want in most cases, but in some situations you may rather
prefer to bail out.

More importantly, it does not even seem to work right, preferring to
remove packages rather than upgrading them to the experimental version:

,----
| # LANG=C apt-get -s install libc6/experimental
| Reading package lists... Done
| Building dependency tree       
| Reading state information... Done
| Selected version '2.13-0exp1' (Debian:experimental [i386]) for 'libc6'
| Selected version '2.13-0exp1' (Debian:experimental [i386]) for 'libc-bin' because of 'libc6'
| The following extra packages will be installed:
|   libc-bin
| Suggested packages:
|   glibc-doc
| The following packages will be REMOVED:
|   build-essential g++ g++-4.4 libc-dev-bin libc6-dev libc6-i686 libstdc++6-4.4-dev locales
| The following packages will be upgraded:
|   libc-bin libc6
| 2 upgraded, 0 newly installed, 8 to remove and 0 not upgraded.
| Remv build-essential [11.5]
| Remv g++ [4:4.4.5-2]
| Remv g++-4.4 [4.4.5-10] [libstdc++6-4.4-dev:i386 ]
| Remv libstdc++6-4.4-dev [4.4.5-10]
| Remv libc6-dev [2.11.2-11]
| Remv libc-dev-bin [2.11.2-11]
| Remv libc6-i686 [2.11.2-11]
| Remv locales [2.11.2-11]
| Inst libc-bin [2.11.2-11] (2.13-0exp1 Debian:experimental [i386]) [libc6:i386 ]
| Conf libc-bin (2.13-0exp1 Debian:experimental [i386]) [libc6:i386 ]
| Inst libc6 [2.11.2-11] (2.13-0exp1 Debian:experimental [i386])
| Conf libc6 (2.13-0exp1 Debian:experimental [i386])
`----

Urgh.

> Previously, if foo/experimental Depends on bar (> some_ver) and bar/unstable 
> was < some_ver but bar/experimental was > some_ver apt-get would propose a 
> not-so-good solution.

Did it even propose a solution in such cases?

> Now, it will propose to install foo/experimental and 
> bar/experimental.  (I think before it might have prompted the user, or failed 
> to install foo.

AFAIK it always failed to install, leaving you with the choice between
the cumbersome "apt-get install foo/experimental bar/experimental" and
the dangerous "apt-get -t experimental install foo".

> I rarely use apt-get to install packages though, so I'm not too familiar with 
> how it's resolver behaves in situations like this.  I use aptitude, which can 
> certainly propose some stupid stuff initially, but provides an interactive 
> resolver that is really easy for me to find the solution that makes sense.

Aptitude's default is to bail out and not install packages from
experimental that you didn't explicitly ask for (you have to try the
next solution).  In the above situation:

,----
| # LANG=C aptitude -s install libc6/experimental
| The following packages will be upgraded: 
|   libc6{b} 
| 1 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
| Need to get 3896 kB of archives. After unpacking 8192 B will be used.
| The following packages have unmet dependencies:
|   libc-dev-bin: Depends: libc6 (< 2.12) but 2.13-0exp1 is to be installed.
|   libc6-i686: PreDepends: libc6 (= 2.11.2-11) but 2.13-0exp1 is to be installed.
|   locales: Depends: glibc-2.11-1 which is a virtual package.
|   libc6-dev: Depends: libc6 (= 2.11.2-11) but 2.13-0exp1 is to be installed.
|   libc6: Depends: libc-bin (= 2.13-0exp1) but 2.11.2-11 is installed.
| The following actions will resolve these dependencies:
| 
|      Keep the following packages at their current version:
| 1)     libc6 [2.11.2-11 (now, unstable)]                  
| 
| 
| 
| Accept this solution? [Y/n/q/?] n
| The following actions will resolve these dependencies:
| 
|      Upgrade the following packages:                                        
| 1)     libc-bin [2.11.2-11 (now, unstable) -> 2.13-0exp1 (experimental)]    
| 2)     libc-dev-bin [2.11.2-11 (now, unstable) -> 2.13-0exp1 (experimental)]
| 3)     libc6-dev [2.11.2-11 (now, unstable) -> 2.13-0exp1 (experimental)]   
| 4)     libc6-i686 [2.11.2-11 (now, unstable) -> 2.13-0exp1 (experimental)]  
| 5)     locales [2.11.2-11 (now, unstable) -> 2.13-0exp1 (experimental)]     
| 
| 
| 
| Accept this solution? [Y/n/q/?] 
| The following packages will be upgraded:
|   libc-bin libc-dev-bin libc6 libc6-dev libc6-i686 locales 
| The following packages are RECOMMENDED but will NOT be installed:
|   manpages-dev 
| 6 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
| Need to get 16.0 MB of archives. After unpacking 2701 kB will be used.
| Do you want to continue? [Y/n/?] 
| Would download/install/remove packages.
`----

This is much better than apt-get's "solution".

Sven


Reply to: