Mark a deb package as used, so it's not suggested for autoremoval
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.
Solution 1:
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).
Solution 2:
Just use apt-get install:
sudo apt-get install [your-packages]
It won't actually install them. It will just set the flag to manually installed.
Solution 3:
You don't have to do anything so complicated as creating your own metapackages.
Suppose you want to make sure a package called foo
is never eligible for autoremoval.
Open a Terminal window (Ctrl+Alt+T) and run:
sudo apt-get install foo
That is, the same command that installs packages manually will mark them as manually installed so they will not be autoremoved even when the packages for which they were originally installed as dependencies are themselves removed.