¿Cómo excluyo paquetes específicos de la instalación con apt-get?

Pregunta:

Me gustaría excluir paquetes específicos de la instalación con apt-get , es decir, instalar un metapaquete sin la lista de paquetes específicos, preferiblemente con una invocación de apt-get .

Por ejemplo, en la línea de comandos de Ubuntu 14.04 LTS, estoy instalando el entorno de escritorio MATE. En 14.04 LTS MATE no es un sabor oficial, así que estoy agregando un 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

luego instalando:

sudo apt-get install xorg mate-core --no-install-recommends

Incluso sin los extras recomendados, mate-core instala 3 emuladores de terminal: xterm , uxterm y mate-terminal , este último sin las fuentes adecuadas mientras se instala en esta configuración mínima.

Supongamos que decido que 3 programas de terminal serían demasiados y me gustaría instalar xorg y mate-core sin xterm y mate-terminal . Yo podría hacer

sudo apt-get install xorg mate-core --no-install-recommends
sudo apt-get purge xterm mate-terminal

pero ¿es posible hacer esto de una vez? ¿Hay alguna sintaxis como

sudo apt-get install xorg mate-core --without xterm mate-terminal

Respuesta:

Entonces, mate-core depende de mate-desktop-environment-core que a su vez depende de mate-terminal . Una dependencia no se puede romper fácilmente. Tampoco apt-get ni aptitude es compatible con una --without o --exclude opción y "mantener" los paquetes no ayudará a:

$ echo "mate-terminal hold" | sudo dpkg --set-selections
$ sudo apt-get install mate-core
[...]
Some packages could not be installed...
The following packages have unmet dependencies:

Claro, uno puede usar dpkg --force-depends para instalar un paquete, pero tal vez eso no sea lo que desea.

Una posibilidad sería completar la bandera Depends: con un paquete ficticio:

$ sudo apt-get install equivs
$ equivs-control mate-terminal
$ vi mate-terminal
Section: misc
Priority: optional
Standards-Version: 3.9.2
Package: mate-terminal
Version: 1.8.0
Description: Dummy package for mate-terminal
:x

$ equivs-build mate-terminal
$ sudo dpkg -i mate-terminal_1.8.0_all.deb

Ahora mate-core debería poder instalarse sin mate-terminal . Repita lo mismo para otros paquetes a excluir.

Es cierto que esto es un gran esfuerzo y una --without opción sería agradable. Tal vez se pueda abrir un error en la lista de deseos para proporcionar dicha funcionalidad en el futuro, pero de alguna manera dudo que esto se implemente.

Sin embargo, una opción más realista sería solicitar al propietario del PPA que proporcione otro metapaquete para MATE con un conjunto menor de paquetes de Depends .

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım