[Aptitude-devel] Bug#693144: aptitude should honour explicit installation request in connection with markauto package
mandyke at gmail.com
Wed Nov 14 02:02:44 UTC 2012
Control: tags -1 + confirmed
[I am sure this is already reported but do not have time to track
down clones right now.]
On 13 November 2012 23:36, Elmar S. Heeb <elmar at heebs.ch> wrote:
> If I deinstall a package aptitude will correctly deinstall all
> dependencies which are markauto and not required by any other package.
> However, if I explicitly request that such a dependent package remains
> installed aptitude will still deinstall it.
Note that you can not request of aptitude that a package “remains
installed”. You can only request to install, remove, mark manual
(hint!), etc.. At best, the closest option is “keep”, however, that
will not work in the example you describe.
That said, I agree with your reasoning. Asking to install a package
that is auto-installed should, instead of doing nothing, mark it as
manually installed so that it is not later removed.
In the past, it was considered convenient to allow users to upgrade
packages using “aptitude install foo”, without altering the
auto-installed state. However, current apt thinking is that “install”
should always mark the requested packages as manually installed. That
is the default behaviour in libapt-pkg, as used by apt-get, etc..
We will change this in aptitude shortly. Whether I push this for
Wheezy or not is yet undecided. It would be ideal to fix this and
remain consistent with other apt programs, however, we are also in
deep freeze and it does not cause serious problems.
> Take a squeeze or sid base installation and install rsstail which
> requires openssl (among others)
> aptitude install rsstail
> Sometime later decide that you don't need rsstail anymore but that you
> want to keep openssl
> aptitude install rsstail- openssl+
> Since openssl was installed as a dependency it is markauto as far as
> aptitudes package state database is concerned. The explicit request to
> install openssl (with the + action) is still ignored.
What you really want is to mark it as manually installed:
# aptitude install rsstail- openssl&m
The request to install openssl is not ignored, although it has no
effect, because aptitude processes that install request *before* it
decides to remove packages that are no longer required.
> If I execute the
> same command (the latter of the two) a second time, openssl will be
> installed again.
Issuing the command again works, because at that point openssl has
already been removed and can be installed.
More information about the Aptitude-devel