I would like to exclude specific packages from installation with apt-get
, that is, install a metapackage without the list of specific packages, preferably with one invocation of apt-get
.
For example, in Ubuntu 14.04 LTS command-line, I am installing MATE desktop environment. In 14.04 LTS MATE is not an official flavour, so I'm adding a PPA:
sudo apt-get install software-properties-common # need them for 'apt-add-repository'
sudo apt-add-repository ppa:ubuntu-mate-dev/ppa
sudo apt-add-repository ppa:ubuntu-mate-dev/trusty-mate
sudo apt-get update
then installing:
sudo apt-get install xorg mate-core --no-install-recommends
Even without the recommended extras, mate-core
installs 3 terminal emulators: xterm
, uxterm
and mate-terminal
, the latter lacking proper fonts while installed in this minimal configuration.
Suppose I decide that 3 terminal programs would be too many and I'd like to install xorg
and mate-core
without xterm
and mate-terminal
. I could do
sudo apt-get install xorg mate-core --no-install-recommends
sudo apt-get purge xterm mate-terminal
but is it possible to do this in one go? Is there some syntax like
sudo apt-get install xorg mate-core --without xterm mate-terminal
Best Answer
So, mate-core depends on
mate-desktop-environment-core
which in turn depends onmate-terminal
. A depend cannot be broken easily. Norapt-get
noraptitude
supports a--without
or--exclude
option and "holding" the packages won't help:Sure, one can use
dpkg --force-depends
to install a package, but that's maybe not what you want.A possibility would be to fullfill the
Depends:
flag with a dummy package:Now
mate-core
should be able to install w/omate-terminal
. Repeat the same for other packages to be excluded.Admittedly this is quite an effort and a
--without
option would be nice. Maybe a wishlist bug can be opened to provide such functionality in the future, but I somehow doubt that this will be implemented.However, a more realistic option would be to petition the PPA owner to provide another meta package for MATE with lesser
Depends
packages set.