134

To compile something, I needed the zlib1g-dev package to be installed so I launched an apt-get install zlib1g-dev.

apt-get informed me nicely that the package was already auto-installed because of an other package, and that it understands that I want it installed explicitly now :

# apt-get install zlib1g-dev
zlib1g-dev is already the newest version.
zlib1g-dev set to manually installed.

My compilation done, I don't need it any more explicitly, so I want to revert its status to the previous one : auto-installed. This way it will be pruned automatically when it will not be needed any more with a simple apt-get autoremove.

I cannot do an apt-get remove zlib1g-dev since some packages still depends on it.

So how may I revert the package zlib1g-devinstallation state to auto-installed ?

I know that I might edit /var/lib/apt/extended_states by hand from

Package: zlib1g-dev
Auto-Installed: 0

to

Package: zlib1g-dev
Auto-Installed: 1

... but it just doesn't feel right.

Steve Schnepp
  • 2,222
  • 3
  • 21
  • 27

3 Answers3

136

apt-mark can help you:

apt-mark auto zlib1g-dev

For 11.04 or older, use "markauto" instead of "auto"

graywh
  • 123
  • 6
Arvind Singh
  • 1,461
  • 2
  • 9
  • 4
115

Aptitude can help you when you initially install the package:

aptitude install "zlib1g-dev&M"

Or, after your have installed the package:

aptitude markauto "zlib1g"

Edit: If you do not have aptitude, you can use

apt-mark auto zlib1g-dev
Mikael S
  • 2,052
  • 1
  • 15
  • 9
  • 10
    Good answer, but I +1's @ArvindSing's answer using `apt-mark` because it does not require that you install `aptitude`. `apt-mark` comes with `apt` package which everyone should already have. – Christopher Schultz Jan 17 '13 at 16:04
9

This is what you're looking for.

sudo apt-get markauto first-package second-package etc-package

Source:

apt-get --help
Mosty Mostacho
  • 211
  • 3
  • 4