Ubuntu – Mark a deb package as used, so it’s not suggested for autoremoval

aptdebpackage-management

I have a bunch of shared libs installed on my system which aren't dependencies of some concrete package but are needed for non-apt-managed libraries I've built from source (like latest SDL, Allegro, SFML, …) and other software built from source. The problem is that those libraries are seen by APT as unused, and are therefore candidates for auto-removal, and those get mixed up with legitimate unused packages that are free to remove.

Is there a way to mark packages as used so that they are not suggested for auto-removal? My first thought was to build my own metapackage just to hold the dependencies (like for example ubuntu-desktop is), but I don't know how to do that.

Best Answer

Although apt-get install marks packages as installed too, it does other things like upgrading packages (if there is an upgrade available). The correct program to change the automatically-installed states is apt-mark.

Usage

Marking a package as manually installed (such that it won't be removed by apt-get autoremove):

sudo apt-mark manual package1 package2 ... packageN

To mark a package as automatically installed (such that it will be removed by apt-get autoremove if no packages depend on it):

sudo apt-mark auto package1 package2 ... packageN

More details are available in the manual page apt-mark(8).

Related Question