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 Ubuntu 14.04 LTS, estoy instalando el entorno de escritorio MATE. En 14.04 LTS MATE no es un sabor oficial, así que agrego 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 instalar:
sudo apt-get install xorg mate-core --no-install-recommends
Incluso sin los extras recomendadas, mate-core
instala 3 emuladores de terminal: xterm
, uxterm
y mate-terminal
, este último carece de fuentes adecuadas, mientras que instalado en esta configuración mínima.
Supongamos que decido que 3 programas de terminal serían demasiados y me gustaría instalarlos 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
fuente
xterm
ymate-terminal
? En 15.04,mate-terminal
es una dependencia dura demate-desktop-environment-core
, que es una dependencia dura demate-core
, y supongo que el PPAmate-terminal
no proporcionax-terminal-emulator
(lo que sí hace el paquete en 15.04).XTerm
y tal vezUXTerm
(no estoy seguro de cuál es el nombre del paquete para este último)sudo apt-get install xorg mate-core --without xterm mate-terminal
aptitude
(o algún administrador de paquetes gráfico), puede (des) seleccionar qué paquetes instalar, y si uno da como resultado una dependencia interrumpida, se le dará una explicación (generalmente).Respuestas:
Así, compañero de núcleos depende de
mate-desktop-environment-core
que a su vez depende demate-terminal
. Una dependencia no se puede romper fácilmente. Niapt-get
tampocoaptitude
es compatible con una--without
o--exclude
opción y "mantener" los paquetes no ayuda:Claro, uno puede usar
dpkg --force-depends
para instalar un paquete, pero tal vez eso no sea lo que desea.Una posibilidad sería llenar la
Depends:
bandera con un paquete ficticio:Ahora
mate-core
debería poder instalar w / omate-terminal
. Repita lo mismo para otros paquetes que se excluirán.Es cierto que esto es un gran esfuerzo y una
--without
opción sería buena. Tal vez se pueda abrir un error de 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
Depends
paquetes de menor tamaño establecidos.fuente
Si usa
aptitude
un administrador de paquetes gráfico (Synaptic, etc.), puede anular la selección de qué paquetes deben instalarse siempre que no cause un problema de dependencia.En el caso de
aptitude
, antes de instalar un paquete (en la vista gráfica), le mostrará por qué se está instalando un paquete dependiente. En mi caso, uso KDE, por lo que no tengo ningún paquete MATE. Si le digo que se instalemate-core
, obtengo lo siguiente:Observe que
mate-core
está marcado como instalado manualmente y que se están instalando muchos otros paquetes. Para elmate-terminal
paquete, en la parte inferior, dice, "mate-desktop-environment-core
[universo] depende demate-terminal
(> = 1.0.0)". Yendo a la entrada paramate-desktop-environment-core
,"
mate-core
[universo] depende demate-desktop-environment-core
(> = 1.8.0 + 9)". Por esomate-terminal
se está instalando.Si, en cambio, se está instalando un paquete recomendado (en lugar de algo que depende de otro paquete),
aptitude
se lo informará y usted puede decirle que no instale ese paquete sin ninguna dependencia rota. Por ejemplo:fuente
Otro método
Descargue el paquete principal que depende del otro. Extraiga el paquete, elimine las dependencias no deseadas y vuelva a embalarlo. Ahora abra el nuevo paquete con el instalador de paquetes gdebi . Instalará nuevas dependencias para usted.
fuente
Hay una
apt
sintaxis especial para escenarios como este: agregar un guión (signo menos) a un paquete lo eliminará / no lo instalará, por lo que lo más cercano a ustedsudo apt-get install xorg mate-core --without xterm mate-terminal
essudo apt-get install xorg mate-core xterm- mate-terminal-
(visto en /ubuntu//a/1011439/182923 )No ayudará en este caso, ya que se encontrará con
pero parece ser la respuesta a tu pregunta específica. Entonces, como referencia, esta publicación cruzada.
fuente